2012-02-29 3 views
1

BizTalk 오케스트레이션이 WCF로 보내는 메시지의 MessageHeader를 설정하려고합니다. 메시지 계약은 WCF 프로젝트에서 다음과 같이 보입니다.BizTalk 설정 BizTalk 메시지 할당의 WCF MessageHeaders

[MessageContract(IsWrapped = true, WrapperName = "PerformTransformationRequestWrapper", WrapperNamespace="http://www.iasreo.com/integration/servicetypes")] 
public class PerformTransformationRequest 
{ 
    [MessageHeader(Namespace = "http://www.iasreo.com/integration/servicetypes")] 
    public string Version { get; set; } 
    /// <summary> 
    /// 
    /// </summary> 
    [MessageHeader(Namespace = "http://www.iasreo.com/integration/servicetypes", MustUnderstand = true)] 
    public TransformType TransformType { get; set; } 

    /// <summary> 
    /// 
    /// </summary> 
    [MessageBodyMember(Namespace = "http://www.iasreo.com/integration/servicetypes")] 
    public System.IO.Stream Payload { get; set; } 
} 

TransformType.cs

[DataContract(Namespace = "http://www.iasreo.com/integration/servicetypes")] 
public enum TransformType 
{ 
    /// <summary> 
    /// Transform to Excel 
    /// </summary> 
    [EnumMember] 
    ExcelTransform = 1, 

    /// <summary> 
    /// Transform to PDF 
    /// </summary> 
    [EnumMember] 
    PDFTransform = 2 
} 
나는 메시지 할당 형태로 Biztalk로 보낼 메시지를 만드는거야 다음과 같이 그 코드 보인다

:

xmlDoc = new System.Xml.XmlDocument(); 
xmlDoc.LoadXml(@"<ns0:PerformTransformationRequestWrapper xmlns:ns0=""http://www.iasreo.com/integration/servicetypes""><ns0:Payload>GpM7</ns0:Payload></ns0:PerformTransformationRequestWrapper>"); 

PerformTransformationRequest = xmlDoc; 

xpath(PerformTransformationRequest, "/*[local-name()='PerformTransformationRequestWrapper' and namespace-uri()='http://www.iasreo.com/integration/servicetypes']/*[local-name()='Payload']") = System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(Input.OuterXml)); 

어떻게 설정할 수 있습니다 WCF MessageContract의 MessageHeaders 버전 및 TransformType?

답변

1

당신이 보내는 메시지 당신은 매개 변수로 전체 WCF 헤더 문자열을 제공 할 필요가

OutboundMessage(WCF.OuboundCustomHeaders) = "..."; 

의 승진 WCF.OutboundCustomHeaders 속성을 설정할 수 있습니다.

http://bencode.net/biztalk-custom-wcf-behaviour은 유용 할 수 있습니다.

+0

WCF.OutboundCustomHeaders를 사용하여 누락 된 한 가지는 내 사용자 지정 유형에 대한 네임 스페이스를 추가하는 것이 었습니다. – Hopdizzle