Share via


MailBindingBase クラス

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

MailBindingBase クラスのコアの動作を定義し、メール バインディングの派生の基を提供します。

名前空間:  Microsoft.ServiceModel.Channels.Mail
アセンブリ:  Microsoft.ServiceModel.Channels.Mail (Microsoft.ServiceModel.Channels.Mail.dll 内)

構文

'宣言
Public MustInherit Class MailBindingBase _
    Inherits Binding
'使用
Dim instance As MailBindingBase
public abstract class MailBindingBase : Binding
public ref class MailBindingBase abstract : public Binding
[<AbstractClassAttribute>]
type MailBindingBase =  
    class
        inherit Binding
    end

解説

MailBindingBase クラスは、エンコーディング要素やトランスポート バインディング要素などのバインディング要素の定義済みコレクションを表します。このクラスでは、すべてのメール トランスポート バインディング要素に共通のプロパティは除外されています。

このクラスに対する定義済みのエンコーディング要素は、TextMessageEncodingBindingElement です。

トランスポート バインディング要素は、MailBindingBase のインスタンス化に使用されるメール バインディング具象サブクラスによって決定されます。次のようなサブクラスがあります。

WindowsMobileMailBinding に対する定義済みのトランスポート バインディング要素は、WindowsMobileMailTransportBindingElement です。ExchangeWebServiceMailBinding に対する定義済みのトランスポート バインディング要素は、ExchangeWebServiceMailTransportBindingElement です。

MailBindingBase クラスを使用して、チャネル ファクトリとチャネル リスナーを作成できます。このクラスを使用してメール バインディングのチャネル リスナーを作成する場合は、引数の 1 つとして BuildChannelListener<TChannel> を受け取る Uri のオーバーロードを使用します。

注意

このクラスは .NET Compact Framework Version 3.5 に含まれていますが、実行時には .NET Compact Framework 3.5 または .NET Framework Version 3.0 以降が必要です。

MailBindingBase から派生したオブジェクトの構築方法の例を次に示します。これらのオブジェクトを使用して、WCF Exchange Server メール トランスポートに基づいて Windows Communication Foundation (WCF) アプリケーションでメッセージを送受信する方法も示します。

カスタム シリアライザーは WCF Exchange Server のメール トランスポートに固有ではないため、この例に含まれていません。

Class Program
    PrivateShared ServerAddress AsNew Uri("http://128.128.1.1")
    PrivateShared ClientEmailAddress AsString = "someone@example.com"PrivateShared Password AsString = "password"PrivateShared ChannelName AsString = "Channel1"PrivateShared DestinationEmailAddress AsString = "someone@fabrikam.com"PrivateShared serializer AsNew CFMessagingSerializer(GetType(String))


    SharedSub Main(ByVal args() AsString) 
        ' 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 AsString
        ' 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(OfString)(serializer)

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

        input.Close()
        listener.Close()

        binding.Close()

    EndSubEndClass
class Program
{
    privatestatic Uri ServerAddress = new Uri("http://128.128.1.1");
    privatestaticstring ClientEmailAddress = "someone@example.com";
    privatestaticstring Password = "password";

    privatestaticstring ChannelName = "Channel1";
    privatestaticstring DestinationEmailAddress = "someone@fabrikam.com";

    privatestatic CFMessagingSerializer serializer = new CFMessagingSerializer(typeof(string));

    staticvoid 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();
    }
}

継承階層

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

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET フレームワークのシステム要件」を参照してください。

バージョン情報

.NET Compact Framework

サポート対象 : 3.5

参照

参照

MailBindingBase メンバー

Microsoft.ServiceModel.Channels.Mail 名前空間