Message Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dağıtılmış bir ortamdaki uç noktalar arasındaki iletişim birimini temsil eder.
public ref class Message abstract : IDisposable
public abstract class Message : IDisposable
type Message = class
interface IDisposable
Public MustInherit Class Message
Implements IDisposable
- Devralma
-
Message
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, ileti göndermek ve yanıtı okumak için kanal fabrikasını kullanan bir istemciyi gösterir.
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
Açıklamalar
sınıfı, Message ağdaki bir gönderen ve alıcı arasında rastgele bilgiler iletmenin bir aracıdır. Bilgileri aktarmak, bir eylem kursu önermek veya talep etmek ya da veri istemek için kullanılabilir.
Nesnenin Message yapısı SOAP zarfını temsil eder. İki ayrı bölümden oluşur: iletinin gövdesi ve sınıfı tarafından Headers temsil edilen isteğe bağlı üst bilgi koleksiyonu. İleti içeriği, bir gönderenden alıcıya gönderilen uygulama tanımlı verilerdir. İleti üst bilgileri, değişen gereksinimleri karşılamak için sistem ve uygulama genişletilebilirliğini etkinleştirir, çünkü belirli üst bilgileri işlemek ve yanıtlamak için kod tanımlayabilirsiniz. Kendi üst bilgilerinizi de tanımlayabilirsiniz. İleti üst bilgileri, iletinin içeriğiyle birlikte seri hale getirilir veya seri durumdan çıkarılır.
İletiler belirli biçimlerde alınır ve gönderilir. İki biçim için destek sağlanır: standart metin tabanlı XML biçimi ve ikili tabanlı XML biçimi. Message Nesnesi hem SOAP 1.1 hem de SOAP 1.2 zarflarını temsil etmek için kullanılabilir. örneğinin Message oluşturma sırasında düzeltildiğini ve belirli bir SOAP sürümüne bağlı olduğunu unutmayın. özelliği, Version iletinin SOAP sürümünü temsil eder.
Bir Message nesne, yöntemi kullanılarak bir dış depoya WriteMessage seri hale getirilebilir. İletinin özellikleri de seri hale getirilebilir, ancak ayrı ayrı tanımlanıp seri hale getirilmelidir. Bellek Message içi nesne oluşturmak için bir iletiyi seri durumdan çıkarma işlemi kullanılarak CreateMessageyapılabilir. Özellikler ayrıca tek tek seri durumdan çıkarılmalı ve belirli Message bir örnek için özellik koleksiyonuna el ile eklenmelidir.
Nesnenin Message boyutu, iletilen verilerin boyutuna sabittir. Her gövde, örneğin sarmalandığı akışın XmlReaderXmlReader boyutu üzerinde önceden tanımlanmış bir sınır olmadan bir örneği olarak modellenmiştir. Ancak belirli kanal sağlayıcıları, işledikleri iletilerin boyutu üzerinde bir sınıra sahip olabilir.
bir Message , iletiyi inceleyen ve işleyen bir varlık tarafından oluşturulan yararlı bilgilerle not eklenebilir. Bu işlevsellik ve Properties özellikleri tarafından Headers sağlanır. Koleksiyon, Headers iletideki SOAP üst bilgileri kümesini temsil eder.
özelliği, Properties iletideki işlem düzeyi ek açıklamaları kümesini temsil eder. Üst bilgilerdeki bilgiler kabloya iletildiğinden, üst bilgiyi inceleyen bir varlık, üst bilgi tarafından kullanılan protokollerin temel sürümlerini desteklemelidir. Ancak özellikler, iletiye açıklama eklemenin sürümden bağımsız bir yolunu sağlar.
Örnek Message oluşturmak için yöntemlerden CreateMessage birini kullanın.
Bir iletinin tüketicisinin iletinin içeriğine erişmeyi bitirdiğinde her zaman araması Close önerilir. Bu eylem, iletinin ömrüne bağlı sonlu sistem kaynaklarını (örneğin, yuvalar, adlandırılmış kanallar) serbest kalır.
Bu sınıftan türetilen Yönetilen C++ kullanıcıları için özel not:
Temizleme kodunuzu bir yıkıcıya değil (On)(Begin)Close (ve/veya OnAbort) içine yerleştirin.
Yıkıcılardan kaçının: derleyicinin otomatik olarak oluşturmasına IDisposableneden olur.
Başvuru olmayan üyelerden kaçının: derleyicinin otomatik olarak oluşturmasına IDisposableneden olabilirler.
Sonlandırıcılardan kaçının; ancak bir tane eklerseniz, otomatik oluşturulan IDisposable davranışın ne olduğunu öykünmek için derleme uyarısını ve çağrısını SuppressFinalize(Object) ve sonlandırıcıyı (On)(Begin)Close (ve/veya OnAbort) öğesinden gizleyin.
Uygulayanlara Notlar
'den Messagedevraldığınızda, şu üyeleri geçersiz kılmalısınız: Headers, ve Version.
Oluşturucular
Message() |
Message sınıfının yeni bir örneğini başlatır. |
Özellikler
Headers |
Türetilmiş bir sınıfta geçersiz kılındığında iletinin üst bilgilerini alır. |
IsDisposed |
atılıp atılmadığını Message belirten bir değer döndürür. |
IsEmpty |
öğesinin boş olup olmadığını Message belirten bir değer döndürür. |
IsFault |
Bu iletinin herhangi bir SOAP hatası oluşturup oluşturmadığını belirten bir değer alır. |
Properties |
Türetilmiş bir sınıfta geçersiz kılındığında, iletiye bir dizi işlem düzeyi ek açıklaması alır. |
State |
Bu Messageöğesinin geçerli durumunu alır. |
Version |
Türetilmiş bir sınıfta geçersiz kılındığında, iletinin SOAP sürümünü alır. |
Yöntemler
BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
İleti gövdesinin içeriğinin zaman uyumsuz yazısını başlatır. |
BeginWriteMessage(XmlDictionaryWriter, AsyncCallback, Object) |
İletinin tamamının zaman uyumsuz yazısını başlatır. |
Close() |
Message öğesini kapatır ve tüm kaynakları serbest bırakır. |
CreateBufferedCopy(Int32) |
Gelecekte erişim için bir bütünü Message bellek arabelleğine depolar. |
CreateMessage(MessageVersion, FaultCode, String, Object, String) |
SOAP hatası, nedeni ve hatanın ayrıntılarını, bir sürümü ve eylemi içeren bir ileti oluşturur. |
CreateMessage(MessageVersion, FaultCode, String, String) |
SOAP hatası, hatanın nedeni, sürüm ve eylem içeren bir ileti oluşturur. |
CreateMessage(MessageVersion, MessageFault, String) |
SOAP hatası, sürüm ve eylem içeren bir ileti oluşturur. |
CreateMessage(MessageVersion, String) |
Sürüm ve eylem içeren bir ileti oluşturur. |
CreateMessage(MessageVersion, String, BodyWriter) |
Bayt dizisini içeren bir gövdeye sahip bir ileti oluşturur. |
CreateMessage(MessageVersion, String, Object) |
Belirtilen sürüm, eylem ve gövde ile bir ileti oluşturur. |
CreateMessage(MessageVersion, String, Object, XmlObjectSerializer) |
Belirtilen sürümü, eylemi, ileti gövdesini ve seri hale getiriciyi kullanarak bir ileti oluşturur. |
CreateMessage(MessageVersion, String, XmlDictionaryReader) |
Belirtilen sürüm, eylem ve gövde ile bir ileti oluşturur. |
CreateMessage(MessageVersion, String, XmlReader) |
Belirtilen okuyucuyu, eylemi ve sürümü kullanarak bir ileti oluşturur. |
CreateMessage(XmlDictionaryReader, Int32, MessageVersion) |
Belirtilen okuyucuyu, eylemi ve sürümü kullanarak bir ileti oluşturur. |
CreateMessage(XmlReader, Int32, MessageVersion) |
Belirtilen okuyucuyu, eylemi ve sürümü kullanarak bir ileti oluşturur. |
EndWriteBodyContents(IAsyncResult) |
İleti gövdesinin içeriğinin zaman uyumsuz yazısını sonlandırır. |
EndWriteMessage(IAsyncResult) |
İletinin tamamının zaman uyumsuz yazısını sonlandırır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetBody<T>() |
Bu Message örneğin gövdesini alır. |
GetBody<T>(XmlObjectSerializer) |
Belirtilen seri hale getiriciyi kullanarak bunun Message gövdesini alır. |
GetBodyAttribute(String, String) |
İleti gövdesinin özniteliklerini alır. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetReaderAtBodyContents() |
Bu iletinin gövde içeriğine erişen XML sözlük okuyucuyu alır. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
İleti, ileti gövdesinin içeriğini yazmaya başladığında bir olay oluşturur. |
OnBeginWriteMessage(XmlDictionaryWriter, AsyncCallback, Object) |
İletilerin tamamının yazılıyor olduğu bir olayı tetikler. |
OnBodyToString(XmlDictionaryWriter) |
İleti gövdesi bir dizeye dönüştürüldüğünde çağrılır. |
OnClose() |
İleti kapatılırken çağrılır. |
OnCreateBufferedCopy(Int32) |
Bu iletiyi depolamak için bir ileti arabelleği oluşturulduğunda çağrılır. |
OnEndWriteBodyContents(IAsyncResult) |
İleti gövdesinin içeriği yazılırken bir olay tetikler. |
OnEndWriteMessage(IAsyncResult) |
İletinin tamamının yazımı sona erdiğinde bir olay oluşturur. |
OnGetBody<T>(XmlDictionaryReader) |
İletinin gövdesi alındığında çağrılır. |
OnGetBodyAttribute(String, String) |
İleti gövdesinin öznitelikleri alındığında çağrılır. |
OnGetReaderAtBodyContents() |
Bu iletinin gövde içeriğine erişen bir XML sözlük okuyucusu alındığında çağrılır. |
OnWriteBodyContents(XmlDictionaryWriter) |
İleti gövdesi bir XML dosyasına yazıldığında çağrılır. |
OnWriteMessage(XmlDictionaryWriter) |
İletinin tamamı bir XML dosyasına yazıldığında çağrılır. |
OnWriteStartBody(XmlDictionaryWriter) |
Başlangıç gövdesi bir XML dosyasına yazıldığında çağrılır. |
OnWriteStartEnvelope(XmlDictionaryWriter) |
Başlangıç zarfı bir XML dosyasına yazıldığında çağrılır. |
OnWriteStartHeaders(XmlDictionaryWriter) |
Başlangıç üst bilgisi bir XML dosyasına yazıldığında çağrılır. |
ToString() |
Geçerli Message örneği temsil eden bir dize döndürür. |
WriteBody(XmlDictionaryWriter) |
Belirtilen XmlDictionaryWriteröğesini kullanarak gövde öğesini yazar. |
WriteBody(XmlWriter) |
Belirtilen XmlWriterkullanarak ileti gövdesini serileştirir. |
WriteBodyContents(XmlDictionaryWriter) |
Belirtilen XmlDictionaryWriteröğesini kullanarak gövde içeriğini serileştirir. |
WriteMessage(XmlDictionaryWriter) |
Belirtilen XmlDictionaryWriterkullanarak iletinin tamamını serileştirir. |
WriteMessage(XmlWriter) |
Belirtilen XmlWriterkullanarak iletinin tamamını serileştirir. |
WriteStartBody(XmlDictionaryWriter) |
Belirtilen XmlDictionaryWriterkullanarak iletinin başlangıç gövdesini serileştirir. |
WriteStartBody(XmlWriter) |
Belirtilen XmlDictionaryWriterkullanarak iletinin başlangıç gövdesini serileştirir. |
WriteStartEnvelope(XmlDictionaryWriter) |
Belirtilen XmlDictionaryWriterkullanarak başlangıç zarfını serileştirir. |
Belirtik Arabirim Kullanımları
IDisposable.Dispose() |
Bu ileti tarafından kullanılan tüm kaynakları kapatır. Bu yöntem devralınamaz. |
Uzantı Metotları
ToHttpRequestMessage(Message) |
Bir HttpRequestMessage örnekten örnek Message oluşturur. |
ToHttpResponseMessage(Message) |
Bir HttpResponseMessage örnekten örnek Message oluşturur. |