Compartir a través de


MailBindingBase (Clase)

Actualización: noviembre 2007

Define el comportamiento básico de la clase MailBindingBase y proporciona una base para las derivaciones de enlace de correo.

Espacio de nombres:  Microsoft.ServiceModel.Channels.Mail
Ensamblado:  Microsoft.ServiceModel.Channels.Mail (en Microsoft.ServiceModel.Channels.Mail.dll)

Sintaxis

'Declaración
Public MustInherit Class MailBindingBase _
    Inherits Binding
'Uso
Dim instance As MailBindingBase
public abstract class MailBindingBase : Binding
public ref class MailBindingBase abstract : public Binding
public abstract class MailBindingBase extends Binding

Comentarios

La clase MailBindingBase representa una colección predefinida de elementos de enlace, como un elemento de codificación y un elemento de enlace de transporte. Esta clase distribuye las propiedades que son comunes a todos los elementos de enlace de correo.

El elemento de codificación predefinido para esta clase es TextMessageEncodingBindingElement.

La subclase de enlace de correo concreta que se utiliza para crear instancias de MailBindingBase determina el elemento de enlace de transporte. Entre estas subclases se incluyen las siguientes:

El elemento de enlace de transporte predefinido para WindowsMobileMailBinding es WindowsMobileMailTransportBindingElement. El elemento de enlace de transporte predefinido para ExchangeWebServiceMailBinding es ExchangeWebServiceMailTransportBindingElement.

Puede usar la clase MailBindingBase para crear generadores y escuchas de canales. Al utilizar esta clase para crear una escucha de canal para un enlace de correo, use una sobrecarga de BuildChannelListener que tome Uri como uno de sus argumentos.

Nota

Esta clase se incluye con .NET Compact Framework versión 3.5, pero requiere .NET Compact Framework 3.5 o .NET Framework versión 3.0 o posterior en tiempo de ejecución.

Ejemplos

En el siguiente ejemplo se muestra cómo crear objetos derivados de MailBindingBase. También se muestra cómo utilizar estos objetos para enviar y recibir los mensajes en una aplicación Windows Communication Foundation (WCF) basada en el transporte de correo de Exchange Server en WCF.

El serializador personalizado no es específico del transporte de correo de Exchange Server en WCF y no se incluye en este ejemplo.

Class Program
    Private Shared ServerAddress As New Uri("http://128.128.1.1")
    Private Shared ClientEmailAddress As String = "someone@example.com"
    Private Shared Password As String = "password"

    Private Shared ChannelName As String = "Channel1"
    Private Shared DestinationEmailAddress As String = "someone@fabrikam.com"

    Private Shared serializer As New CFMessagingSerializer(GetType(String))


    Shared Sub Main(ByVal args() As String) 
        ' For applications on the device, use WindowsMobileMailBinding
        ' instead of ExchangeWebServiceMailBinding.
        Dim binding As ExchangeWebServiceMailBinding
        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 message As Message
        Dim str As String

        ' For applications on the device, use WindowsMobileMailBinding.
        binding = New ExchangeWebServiceMailBinding(ServerAddress, New NetworkCredential(ClientEmailAddress, Password))
        bpc = New BindingParameterCollection()

        factory = binding.BuildChannelFactory(Of IOutputChannel)(bpc)
        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 = binding.BuildChannelListener(Of IInputChannel)(MailUriHelper.CreateUri(ChannelName, ""), bpc)
        listener.Open()
        input = listener.AcceptChannel()
        input.Open()

        message = input.Receive()
        str = message.GetBody(Of String)(serializer)

        Console.WriteLine("Received message: {0}", str)

        input.Close()
        listener.Close()

        binding.Close()

    End Sub
End Class
class Program
{
    private static Uri ServerAddress = new Uri("http://128.128.1.1");
    private static string ClientEmailAddress = "someone@example.com";
    private static string Password = "password";

    private static string ChannelName = "Channel1";
    private static string DestinationEmailAddress = "someone@fabrikam.com";

    private static CFMessagingSerializer serializer = new CFMessagingSerializer(typeof(string));

    static void Main(string[] args)
    {
        // For applications on the device, use WindowsMobileMailBinding
        // instead of ExchangeWebServiceMailBinding.
        ExchangeWebServiceMailBinding binding;
        IChannelFactory<IOutputChannel> factory;
        IChannelListener<IInputChannel> listener;
        IOutputChannel output;
        IInputChannel input;
        BindingParameterCollection bpc;
        Message message;
        string str;

        // For applications on the device, use WindowsMobileMailBinding.
        binding = new ExchangeWebServiceMailBinding(ServerAddress, new NetworkCredential(ClientEmailAddress, Password));
        bpc = new BindingParameterCollection();

        factory = binding.BuildChannelFactory<IOutputChannel>(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 = binding.BuildChannelListener<IInputChannel>(MailUriHelper.CreateUri(ChannelName, ""), bpc);
        listener.Open();
        input = listener.AcceptChannel();
        input.Open();

        message = input.Receive();
        str = message.GetBody<string>(serializer);

        Console.WriteLine("Received message: {0}", str);

        input.Close();
        listener.Close();

        binding.Close();
    }
}

Jerarquía de herencia

System.Object
  System.ServiceModel.Channels.Binding
    Microsoft.ServiceModel.Channels.Mail.MailBindingBase
      Microsoft.ServiceModel.Channels.Mail.WindowsMobile.WindowsMobileMailBinding

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Plataformas

Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Compact Framework

Compatible con: 3.5

Vea también

Referencia

MailBindingBase (Miembros)

Microsoft.ServiceModel.Channels.Mail (Espacio de nombres)