Message.CreateMessage 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
創造訊息。
多載
| 名稱 | Description |
|---|---|
| CreateMessage(MessageVersion, FaultCode, String, Object, String) |
建立包含 SOAP 錯誤、原因與錯誤細節、版本及動作的訊息。 |
| CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) |
使用指定的版本、動作、訊息主體及序列化器建立訊息。 |
| CreateMessage(MessageVersion, FaultCode, String, String) |
建立包含 SOAP 錯誤、錯誤原因、版本及動作的訊息。 |
| CreateMessage(XmlDictionaryReader, Int32, MessageVersion) |
使用指定的讀取器、動作與版本建立訊息。 |
| CreateMessage(MessageVersion, String, XmlReader) |
使用指定的讀取器、動作與版本建立訊息。 |
| CreateMessage(XmlReader, Int32, MessageVersion) |
使用指定的讀取器、動作與版本建立訊息。 |
| CreateMessage(MessageVersion, String, BodyWriter) |
建立由位元組陣列組成的訊息。 |
| CreateMessage(MessageVersion, String, Object) |
建立包含指定版本、動作與正文的訊息。 |
| CreateMessage(MessageVersion, MessageFault, String) |
建立包含 SOAP 錯誤、版本與動作的訊息。 |
| CreateMessage(MessageVersion, String) |
建立包含版本與動作的訊息。 |
| CreateMessage(MessageVersion, String, XmlDictionaryReader) |
建立包含指定版本、動作與正文的訊息。 |
範例
以下程式碼範例展示了一個使用通道工廠發送訊息並讀取回覆的客戶端。
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)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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
一個 MessageFault 代表 SOAP 故障的物件。
- reason
- String
SOAP 故障的原因。
- detail
- Object
SOAP斷層的細節。
- action
- String
說明訊息應該如何處理。
傳回
一個 Message 用於訊息產生的物件。
例外狀況
version, fault, , action或 detailfaultCode 是 null。
備註
此靜態方法用於建立一份新的訊息副本,準備傳送。
適用於
CreateMessage(MessageVersion, String, Object, XmlObjectSerializer)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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, FaultCode, String, String)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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
一個 MessageFault 代表 SOAP 故障的物件。
- reason
- String
SOAP 故障的原因。
- action
- String
說明訊息應該如何處理。
傳回
一個 Message 用於訊息產生的物件。
例外狀況
version, , fault或 actionfaultCode 是 null。
備註
此靜態方法用於建立一份新的訊息副本,準備傳送。
適用於
CreateMessage(XmlDictionaryReader, Int32, MessageVersion)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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(XmlReader, Int32, MessageVersion)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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(MessageVersion, String, BodyWriter)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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
A BodyWriter 型別位元組。
傳回
一個 Message 用於訊息產生的物件。
例外狀況
Version,action或body是。null
備註
空訊息對於端點來說是有用的,可以向另一個端點發送警報,但沒有任何實際內容。
適用於
CreateMessage(MessageVersion, String, Object)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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
一個 MessageFault 代表 SOAP 故障的物件。
- action
- String
說明訊息應該如何處理。
傳回
一個 Message 用於訊息產生的物件。
例外狀況
Version,fault或action是。null
備註
此靜態方法用於建立一份新的訊息副本,準備傳送。
適用於
CreateMessage(MessageVersion, String)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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。
備註
此靜態方法用於建立一份新的訊息副本,準備傳送。
適用於
CreateMessage(MessageVersion, String, XmlDictionaryReader)
- 來源:
- Message.cs
- 來源:
- Message.cs
- 來源:
- 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
備註
此靜態方法用於建立一份新的訊息副本,準備傳送。