Message.CreateMessage 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建消息。
重载
| CreateMessage(MessageVersion, FaultCode, String, Object, String) | 
						 创建一个包含了 SOAP 错误、错误原因和详细信息、版本和操作的消息。  | 
        	
| CreateMessage(MessageVersion, FaultCode, String, String) | 
						 创建一个包含了 SOAP 错误、错误原因、版本和操作的消息。  | 
        	
| CreateMessage(XmlReader, Int32, MessageVersion) | 
						 使用指定的读取器、操作和版本创建消息。  | 
        	
| CreateMessage(XmlDictionaryReader, Int32, MessageVersion) | 
						 使用指定的读取器、操作和版本创建消息。  | 
        	
| CreateMessage(MessageVersion, String, XmlReader) | 
						 使用指定的读取器、操作和版本创建消息。  | 
        	
| CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) | 
						 使用指定的版本、操作、消息正文和序列化程序创建消息。  | 
        	
| CreateMessage(MessageVersion, String, BodyWriter) | 
						 创建一个正文包含字节数组的消息。  | 
        	
| CreateMessage(MessageVersion, String, Object) | 
						 使用指定的版本、操作和正文创建消息。  | 
        	
| CreateMessage(MessageVersion, MessageFault, String) | 
						 创建一个包含了 SOAP 错误、版本和操作的消息。  | 
        	
| CreateMessage(MessageVersion, String, XmlDictionaryReader) | 
						 使用指定的版本、操作和正文创建消息。  | 
        	
| CreateMessage(MessageVersion, String) | 
						 创建一个包含了版本和操作的消息。  | 
        	
示例
下面的代码示例演示了使用通道工厂发送消息并读取回复的客户端。
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime.Serialization;
namespace ConsoleApplication1
{
    class client
    {
        static void RunClient()
        {
            //Step1: create a binding with just HTTP
            CustomBinding binding = new CustomBinding();
            binding.Elements.Add(new HttpTransportBindingElement());
            //Step2: use the binding to build the channel factory
            IChannelFactory<IRequestChannel> factory =
            binding.BuildChannelFactory<IRequestChannel>(
                             new BindingParameterCollection());
            //open the channel factory
            factory.Open();
            //Step3: use the channel factory to create a channel
            IRequestChannel channel = factory.CreateChannel(
               new EndpointAddress("http://localhost:8080/channelapp"));
            channel.Open();
            //Step4: create a message
            Message requestmessage = Message.CreateMessage(
                MessageVersion.Soap12WSAddressing10,
                "http://contoso.com/someaction",
                 "This is the body data");
            //send message
            Message replymessage = channel.Request(requestmessage);
            Console.WriteLine("Reply message received");
            Console.WriteLine("Reply action: {0}",
                                  replymessage.Headers.Action);
            string data = replymessage.GetBody<string>();
            Console.WriteLine("Reply content: {0}", data);
            //Step5: don't forget to close the message
            requestmessage.Close();
            replymessage.Close();
            //don't forget to close the channel
            channel.Close();
            //don't forget to close the factory
            factory.Close();
        }
        public static void Main()
        {
            Console.WriteLine("Press [ENTER] when service is ready");
            Console.ReadLine();
            RunClient();
            Console.WriteLine("Press [ENTER] to exit");
            Console.ReadLine();
        }
    }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Runtime.Serialization
Namespace ConsoleApplication1
    Friend Class client
        Private Shared Sub RunClient()
            'Step1: create a binding with just HTTP
            Dim binding As New CustomBinding()
            binding.Elements.Add(New HttpTransportBindingElement())
            'Step2: use the binding to build the channel factory
            Dim factory As IChannelFactory(Of IRequestChannel) = binding.BuildChannelFactory(Of IRequestChannel)(New BindingParameterCollection())
            'open the channel factory
            factory.Open()
            'Step3: use the channel factory to create a channel
            Dim channel As IRequestChannel = factory.CreateChannel(New EndpointAddress("http://localhost:8080/channelapp"))
            channel.Open()
            'Step4: create a message
            Dim requestmessage As Message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "http://contoso.com/someaction", "This is the body data")
            'send message
            Dim replymessage As Message = channel.Request(requestmessage)
            Console.WriteLine("Reply message received")
            Console.WriteLine("Reply action: {0}", replymessage.Headers.Action)
            Dim data = replymessage.GetBody(Of String)()
            Console.WriteLine("Reply content: {0}", data)
            'Step5: don't forget to close the message
            requestmessage.Close()
            replymessage.Close()
            'don't forget to close the channel
            channel.Close()
            'don't forget to close the factory
            factory.Close()
        End Sub
        Public Shared Sub Main()
            Console.WriteLine("Press [ENTER] when service is ready")
            Console.ReadLine()
            RunClient()
            Console.WriteLine("Press [ENTER] to exit")
            Console.ReadLine()
        End Sub
    End Class
End Namespace
	注解
此方法用于创建准备好要发送的消息的新副本。
使用 JSON 消息时,请使用 CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) 方法,CreateMessage(MessageVersion, String, Object) 方法无法用于 JSON 消息。
CreateMessage(MessageVersion, FaultCode, String, Object, String)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
创建一个包含了 SOAP 错误、错误原因和详细信息、版本和操作的消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::ServiceModel::FaultCode ^ faultCode, System::String ^ reason, System::Object ^ detail, System::String ^ action);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, System.ServiceModel.FaultCode faultCode, string reason, object detail, string action);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * System.ServiceModel.FaultCode * string * obj * string -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, faultCode As FaultCode, reason As String, detail As Object, action As String) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- faultCode
 - FaultCode
 
一个表示 SOAP 错误的 MessageFault 对象。
- reason
 - String
 
SOAP 错误的原因。
- detail
 - Object
 
SOAP 错误的详细信息。
- action
 - String
 
有关应如何处理消息的说明。
返回
所创建消息的 Message 对象。
例外
              version、fault、action、detail 或 faultCode 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
适用于
CreateMessage(MessageVersion, FaultCode, String, String)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
创建一个包含了 SOAP 错误、错误原因、版本和操作的消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::ServiceModel::FaultCode ^ faultCode, System::String ^ reason, System::String ^ action);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, System.ServiceModel.FaultCode faultCode, string reason, string action);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * System.ServiceModel.FaultCode * string * string -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, faultCode As FaultCode, reason As String, action As String) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- faultCode
 - FaultCode
 
一个表示 SOAP 错误的 MessageFault 对象。
- reason
 - String
 
SOAP 错误的原因。
- action
 - String
 
有关应如何处理消息的说明。
返回
所创建消息的 Message 对象。
例外
              version、fault、action 或 faultCode 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
适用于
CreateMessage(XmlReader, Int32, MessageVersion)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的读取器、操作和版本创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::Xml::XmlReader ^ envelopeReader, int maxSizeOfHeaders, System::ServiceModel::Channels::MessageVersion ^ version);
	public static System.ServiceModel.Channels.Message CreateMessage (System.Xml.XmlReader envelopeReader, int maxSizeOfHeaders, System.ServiceModel.Channels.MessageVersion version);
	static member CreateMessage : System.Xml.XmlReader * int * System.ServiceModel.Channels.MessageVersion -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (envelopeReader As XmlReader, maxSizeOfHeaders As Integer, version As MessageVersion) As Message
	参数
- maxSizeOfHeaders
 - Int32
 
标头的最大大小(以字节为单位)。
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
返回
所创建消息的 Message 对象。
例外
              envelopeReader 或 version 为 null。
注解
              Message 获取 的 envelopeReader所有权。
此方法读取信封,将所有标头放入标头集合缓冲区中,并读取直到(但不包括)Body 开始标记为止的内容,然后返回消息。 如果方法调用引发异常,它将关闭读取器。
然后可以读取或写入所返回消息的正文。
可以在返回的消息上使用 GetBody 方法读取消息正文。 返回的对象将所有子元素包装在 Body 元素内。 可以使用 WriteBody 或 WriteMessage 写入消息正文。 写入之后将无法读取。
关闭消息的同时将关闭基础信封读取器。
适用于
CreateMessage(XmlDictionaryReader, Int32, MessageVersion)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的读取器、操作和版本创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::Xml::XmlDictionaryReader ^ envelopeReader, int maxSizeOfHeaders, System::ServiceModel::Channels::MessageVersion ^ version);
	public static System.ServiceModel.Channels.Message CreateMessage (System.Xml.XmlDictionaryReader envelopeReader, int maxSizeOfHeaders, System.ServiceModel.Channels.MessageVersion version);
	static member CreateMessage : System.Xml.XmlDictionaryReader * int * System.ServiceModel.Channels.MessageVersion -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (envelopeReader As XmlDictionaryReader, maxSizeOfHeaders As Integer, version As MessageVersion) As Message
	参数
- envelopeReader
 - XmlDictionaryReader
 
要用于读取 SOAP 消息的 XmlDictionaryReader 对象。
- maxSizeOfHeaders
 - Int32
 
标头的最大大小(以字节为单位)。
- version
 - MessageVersion
 
一个有效的 MessageVersion 值,指定要用于消息的 SOAP 版本。
返回
所创建消息的 Message 对象。
例外
              envelopeReader 或 version 为 null。
注解
              Message 获取 的 envelopeReader所有权。
此方法读取信封,将所有标头放入标头集合缓冲区中,并读取直到(但不包括)Body 开始标记为止的内容,然后返回消息。 如果方法调用引发异常,它将关闭读取器。
然后可以读取或写入所返回消息的正文。
可以在返回的消息上使用 GetBody 方法读取消息正文。 返回的对象将所有子元素包装在 Body 元素内。 可以使用 WriteBody 或 WriteMessage 写入消息正文。 写入之后将无法读取。
关闭消息的同时将关闭基础信封读取器。
适用于
CreateMessage(MessageVersion, String, XmlReader)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的读取器、操作和版本创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action, System::Xml::XmlReader ^ body);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action, System.Xml.XmlReader body);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string * System.Xml.XmlReader -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String, body As XmlReader) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
返回
所创建消息的 Message 对象。
例外
              version、action 或 body 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
适用于
CreateMessage(MessageVersion, String, Object, XmlObjectSerializer)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的版本、操作、消息正文和序列化程序创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action, System::Object ^ body, System::Runtime::Serialization::XmlObjectSerializer ^ serializer);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action, object body, System.Runtime.Serialization.XmlObjectSerializer serializer);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string * obj * System.Runtime.Serialization.XmlObjectSerializer -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String, body As Object, serializer As XmlObjectSerializer) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
- body
 - Object
 
消息正文。
- serializer
 - XmlObjectSerializer
 
用于序列化该消息的 XmlObjectSerializer 方法。
返回
所创建消息的 Message 对象。
例外
              version、fault 或 action 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
使用 JSON 消息时,请使用 CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) 方法,CreateMessage(MessageVersion, String, Object) 方法无法用于 JSON 消息。
适用于
CreateMessage(MessageVersion, String, BodyWriter)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
创建一个正文包含字节数组的消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action, System::ServiceModel::Channels::BodyWriter ^ body);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action, System.ServiceModel.Channels.BodyWriter body);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string * System.ServiceModel.Channels.BodyWriter -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String, body As BodyWriter) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
- body
 - BodyWriter
 
一个类型为 byte 的 BodyWriter。
返回
所创建消息的 Message 对象。
例外
              Version、action 或 body 为 null。
注解
空消息可用于将警报从一个终结点发送到另一个终结点,而不包含任何实际内容。
适用于
CreateMessage(MessageVersion, String, Object)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的版本、操作和正文创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action, System::Object ^ body);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action, object body);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string * obj -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String, body As Object) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
- body
 - Object
 
消息正文。
返回
所创建消息的 Message 对象。
例外
              version、action 或 body 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
使用 JSON 消息时,请使用 CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) 方法,CreateMessage(MessageVersion, String, Object) 方法无法用于 JSON 消息。
适用于
CreateMessage(MessageVersion, MessageFault, String)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
创建一个包含了 SOAP 错误、版本和操作的消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::ServiceModel::Channels::MessageFault ^ fault, System::String ^ action);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, System.ServiceModel.Channels.MessageFault fault, string action);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * System.ServiceModel.Channels.MessageFault * string -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, fault As MessageFault, action As String) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- fault
 - MessageFault
 
一个表示 SOAP 错误的 MessageFault 对象。
- action
 - String
 
有关应如何处理消息的说明。
返回
所创建消息的 Message 对象。
例外
              Version、fault 或 action 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
适用于
CreateMessage(MessageVersion, String, XmlDictionaryReader)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
使用指定的版本、操作和正文创建消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action, System::Xml::XmlDictionaryReader ^ body);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action, System.Xml.XmlDictionaryReader body);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string * System.Xml.XmlDictionaryReader -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String, body As XmlDictionaryReader) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
- body
 - XmlDictionaryReader
 
消息正文。
返回
所创建消息的 Message 对象。
例外
              version、action 或 body 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。
适用于
CreateMessage(MessageVersion, String)
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
- Source:
 - Message.cs
 
创建一个包含了版本和操作的消息。
public:
 static System::ServiceModel::Channels::Message ^ CreateMessage(System::ServiceModel::Channels::MessageVersion ^ version, System::String ^ action);
	public static System.ServiceModel.Channels.Message CreateMessage (System.ServiceModel.Channels.MessageVersion version, string action);
	static member CreateMessage : System.ServiceModel.Channels.MessageVersion * string -> System.ServiceModel.Channels.Message
	Public Shared Function CreateMessage (version As MessageVersion, action As String) As Message
	参数
- version
 - MessageVersion
 
一个 MessageVersion 对象,指定要用于消息的 SOAP 版本。
- action
 - String
 
有关应如何处理消息的说明。
返回
所创建消息的 Message 对象。
例外
              version 或 action 为 null。
注解
此静态方法用于创建准备好要发送的消息的新副本。