MailTransportBindingElementBase-Klasse
Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]
Definiert das zentrale Verhalten der Klasse MailTransportBindingElementBase, und stellt eine Basisklasse für Mail Transport Bindung Element Ableitungen bereit.
Namespace: Microsoft.ServiceModel.Channels.Mail
Assembly: Microsoft.ServiceModel.Channels.Mail (in Microsoft.ServiceModel.Channels.Mail.dll)
Syntax
'Declaration
Public MustInherit Class MailTransportBindingElementBase _
Inherits TransportBindingElement
'Usage
Dim instance As MailTransportBindingElementBase
public abstract class MailTransportBindingElementBase : TransportBindingElement
public ref class MailTransportBindingElementBase abstract : public TransportBindingElement
[<AbstractClassAttribute>]
type MailTransportBindingElementBase =
class
inherit TransportBindingElement
end
Hinweise
Diese Klasse Faktoren Eigenschaften, die alle e-Mail-Transport-Bindungselemente Windows Communication Foundation (WCF) bereitgestellten gemeinsam sind.Er verarbeitet die Übersetzung von base e-Mail-Transporteinstellungen in Laufzeit Erscheinungsformen.Die Klasse Delegaten Mail-Transport-spezifische Implementierungsdetails zu Ihrer konkreten e-Mail Transport Bindung Unterklassen, die die folgenden Klassen enthalten:
MailTransportBindingElementBase-Klasse können Sie um Kanal Factorys und Channel-Listener zu erstellen.Wenn Sie diese Klasse, verwenden um eine Kanallistener für eine e-Mail-Bindung zu erstellen, verwenden Sie eine Überladung der BuildChannelListener<TChannel> -Methode, die ein Uri als eines Ihrer Argumente annimmt.Wenn ein Uri nicht im Aufruf von BuildChannelListener<TChannel>übergeben wird, wird ein ArgumentException ausgelöst.
Eine Reihe von Bindungselementen kann zum Erstellen eines Objekts CustomBinding verwendet werden.Verwenden Sie in diesem Szenario das CustomBinding -Objekt die BuildChannelFactory<TChannel> und BuildChannelListener<TChannel> Methoden aufrufen.
Hinweis
Diese Klasse ist in der .NET compact Framework Version 3.5enthalten jedoch erfordert der .NET Compact Framework 3.5 oder .NET Framework, Version 3.0 oder später zur Laufzeit.
Beispiele
Das folgende Beispiel veranschaulicht die MailTransportBindingElementBase-Klasse verwenden.So erstellen Sie das WindowsMobileMailTransportBindingElement verwendet ein CustomBinding und ein benutzerdefiniertes Codierung Element.
Benutzerdefinierte Serialisierungsprogramm ist nicht spezifisch für WCF Exchange Server e-Mail-Transport und ist in diesem Beispiel nicht enthalten.
Class Program
PrivateShared ChannelName AsString = "Channel1"PrivateShared DestinationEmailAddress AsString = "someone@example.com"PrivateShared serializer AsNew CFMessagingSerializer(GetType(String))
SharedSub Main(ByVal args() AsString)
Dim factory As IChannelFactory(Of IOutputChannel)
Dim listener As IChannelListener(Of IInputChannel)
Dim output As IOutputChannel
Dim input As IInputChannel
Dim bpc As BindingParameterCollection
Dim mailTransportBindingElement As MailTransportBindingElementBase
Dim msgEncodingBindingElement As MessageEncodingBindingElement
Dim message As Message
Dim str AsStringDim binding As System.ServiceModel.Channels.Binding
' Instantiate a TextMessageEncodingBindingElement or ' a custom encoding binding element. If you use a custom encoding ' binding element, messages must be sent as attachments.
msgEncodingBindingElement = New CustomMessageEncodingBindingElement()
mailTransportBindingElement = New WindowsMobileMailTransportBindingElement()
mailTransportBindingElement.MessageContainerType = MessageContainerType.Attachment
' In this example, set lifetime to 1 day, 10 hours, ' 20 minutes, and 30 seconds.
mailTransportBindingElement.TimeToLive = New TimeSpan(1, 10, 20, 30)
mailTransportBindingElement.Transport.MaxTotalMessageCacheSize = 1000
binding = New CustomBinding(msgEncodingBindingElement, mailTransportBindingElement)
bpc = New BindingParameterCollection()
factory = binding.BuildChannelFactory(Of IOutputChannel)(bpc)
listener = binding.BuildChannelListener(Of IInputChannel)(MailUriHelper.CreateUri(ChannelName, ""))
factory.Open()
output = factory.CreateChannel(New EndpointAddress(MailUriHelper.Create(ChannelName, DestinationEmailAddress)))
output.Open()
message = System.ServiceModel.Channels.Message.CreateMessage(MessageVersion.Default, "urn:Test", "Hello, World!", serializer)
output.Send(message)
output.Close()
factory.Close()
listener.Open()
input = listener.AcceptChannel()
input.Open()
message = input.Receive()
str = message.GetBody(OfString)(serializer)
MessageBox.Show(str, "Received message")
input.Close()
listener.Close()
mailTransportBindingElement.Close()
EndSubEndClass
class Program
{
privatestaticstring ChannelName = "Channel1";
privatestaticstring DestinationEmailAddress = "someone@example.com";
privatestatic CFMessagingSerializer serializer = new CFMessagingSerializer(typeof(string));
staticvoid Main(string[] args)
{
IChannelFactory<IOutputChannel> factory;
IChannelListener<IInputChannel> listener;
IOutputChannel output;
IInputChannel input;
BindingParameterCollection bpc;
MailTransportBindingElementBase mailTransportBindingElement;
MessageEncodingBindingElement msgEncodingBindingElement;
Message message;
string str;
System.ServiceModel.Channels.Binding binding;
// Instantiate a TextMessageEncodingBindingElement or// a custom encoding binding element. If you use a custom encoding// binding element, messages must be sent as attachments.
msgEncodingBindingElement = new CustomMessageEncodingBindingElement();
mailTransportBindingElement = new WindowsMobileMailTransportBindingElement();
mailTransportBindingElement.MessageContainerType = MessageContainerType.Attachment;
// In this example, set lifetime to 1 day, 10 hours,// 20 minutes, and 30 seconds.
mailTransportBindingElement.TimeToLive = new TimeSpan(1, 10, 20, 30);
mailTransportBindingElement.Transport.MaxTotalMessageCacheSize = 1000;
binding = new CustomBinding(msgEncodingBindingElement, mailTransportBindingElement);
bpc = new BindingParameterCollection();
factory = binding.BuildChannelFactory<IOutputChannel>(bpc);
listener = binding.BuildChannelListener<IInputChannel>(MailUriHelper.CreateUri(ChannelName, ""), bpc);
factory.Open();
output = factory.CreateChannel(new EndpointAddress(MailUriHelper.Create(ChannelName, DestinationEmailAddress)));
output.Open();
message = Message.CreateMessage(MessageVersion.Default, "urn:Test", "Hello, World!", serializer);
output.Send(message);
output.Close();
factory.Close();
listener.Open();
input = listener.AcceptChannel();
input.Open();
message = input.Receive();
str = message.GetBody<string>(serializer);
MessageBox.Show(str, "Received message");
input.Close();
listener.Close();
mailTransportBindingElement.Close();
}
}
Vererbungshierarchie
System.Object
System.ServiceModel.Channels.BindingElement
System.ServiceModel.Channels.TransportBindingElement
Microsoft.ServiceModel.Channels.Mail.MailTransportBindingElementBase
Microsoft.ServiceModel.Channels.Mail.WindowsMobile.WindowsMobileMailTransportBindingElement
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC
Die .NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET framework.
Versionsinformationen
.NET Compact Framework
Unterstützt in: 3.5