문제

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

 [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에서 버전 및 TransformType을 설정하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

You can set the promoted WCF.OutboundCustomHeaders property of the outgoing message

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

You need to supply the complete WCF Header string as the parameter.

This http://bencode.net/biztalk-custom-wcf-behaviour might be of use to you.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top