Freigeben über


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

Siehe auch

Referenz

Member MailTransportBindingElementBase

Microsoft.ServiceModel.Channels.Mail-Namespace