【问题标题】:Biztalk set WCF MessageHeaders in Biztalk message assignmentBiztalk 在 Biztalk 消息分配中设置 WCF MessageHeaders
【发布时间】:2012-03-19 09:39:35
【问题描述】:

我正在尝试设置我的 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 中MessageHeaders 的Version 和TransformType?

【问题讨论】:

    标签: wcf biztalk biztalk-2010


    【解决方案1】:

    您可以设置传出消息的提升的 WCF.OutboundCustomHeaders 属性

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

    您需要提供完整的 WCF 标头字符串作为参数。

    这个http://bencode.net/biztalk-custom-wcf-behaviour 可能对你有用。

    【讨论】:

    • 我使用 WCF.OutboundCustomHeaders 缺少的一件事是为我的自定义类型添加命名空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多