Orchestration如何定制Message格式化输出

默认情况下,Orchestration按照.NET基础类型进行序列化输出Message,输出的消息总是含有XML声明。如果需要定制Message格式输出,按照下面的步骤进行:

1.定义一个Value Object类,
    包含原Message的有用属性,标识该类为 [Serializable]

2. 定义一个实现System.Runtime.Serialization.IFormatter接口的VOFormatter类,根据定制格式输出要求,实现下面的两个方法

public override void Serialize(Stream s, object o)
//object o为Value Object类型,根据o中的属性值去写Stream s

public override object Deserialize(Stream stm)
//根据Stream的内容构造Value Object,并返回,与Serialize的构造过程互为反过程

3. 申明对特定的类消息使用特定的Fommatter
[CustomFormatter(typeof(VOFormatter))]
//CustomFormatterAttribute属性类位于Microsoft.XLANGs.BaseTypes命名空间中

4. 在Orchestration中定义Value Object类型的消息并且构造

Original Post:http://blogs.digitaldeposit.net/saravana/post/2007/05/24/Output-custom-formatted-message-from-Orchestration.aspx

你可能感兴趣的:(message)