次の方法で共有


MessageEncoderFactory クラス

定義

メッセージ エンコーダーを生成するためのファクトリを表す抽象基本クラス。このメッセージ エンコーダーは、ストリームからメッセージを読み取り、それをさまざまなメッセージ エンコーディング形式のストリームに書き込むことができます。

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
継承
MessageEncoderFactory

次のコードでは、MessageEncoderFactory から派生するクラスを作成する方法を示します。

public override bool IsContentTypeSupported(string contentType)
{
    if (base.IsContentTypeSupported(contentType))
    {
        return true;
    }
    if (contentType.Length == this.MediaType.Length)
    {
        return contentType.Equals(this.MediaType, StringComparison.OrdinalIgnoreCase);
    }
    else
    {
        if (contentType.StartsWith(this.MediaType, StringComparison.OrdinalIgnoreCase)
            && (contentType[this.MediaType.Length] == ';'))
        {
            return true;
        }
    }
    return false;
}
public class CustomTextMessageEncoderFactory : MessageEncoderFactory
{
    private MessageEncoder encoder;
    private MessageVersion version;
    private string mediaType;
    private string charSet;

    internal CustomTextMessageEncoderFactory(string mediaType, string charSet,
        MessageVersion version)
    {
        this.version = version;
        this.mediaType = mediaType;
        this.charSet = charSet;
        this.encoder = new CustomTextMessageEncoder(this);
    }

    public override MessageEncoder Encoder
    {
        get
        {
            return this.encoder;
        }
    }

    public override MessageVersion MessageVersion
    {
        get
        {
            return this.version;
        }
    }

    internal string MediaType
    {
        get
        {
            return this.mediaType;
        }
    }

    internal string CharSet
    {
        get
        {
            return this.charSet;
        }
    }
}

注釈

エンコーディングは、メッセージをバイト シーケンスに変換するプロセスです。 デコードは、その逆のプロセスです。

カスタム メッセージ エンコーダーを実装する場合は、このクラスを使用します。 独自のカスタム メッセージ エンコーダーを実装するには、次の 3 つの抽象基本クラスのカスタム実装を提供する必要があります。

Encoder をオーバーライドして、独自のカスタム MessageEncoder のインスタンスを返します。 次に、MessageEncoderFactory メソッドをオーバーライドしてこのファクトリのインスタンスを返すようにすることで、カスタム CreateMessageEncoderFactory を、サービスまたはクライアントの構成に使用されるバインド要素スタックに接続します。 カスタム エンコーダーの詳細については、「 データ転送とシリアル化」を参照してください。

コンストラクター

MessageEncoderFactory()

MessageEncoderFactory クラスの新しいインスタンスを初期化します。

プロパティ

Encoder

派生クラスでオーバーライドされた場合、ファクトリによって生成されるメッセージ エンコーダーを取得します。

MessageVersion

派生クラスでオーバーライドされた場合、メッセージをエンコードするためにファクトリによって生成されるメッセージ エンコーダーが使用するメッセージ バージョンを取得します。

メソッド

CreateSessionEncoder()

セッション ベースの交換でメッセージを関連付けるために使用できるメッセージ エンコーダーを返します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象