2

一般的な質問があります。WCF サービスを作成するときに、具象クラスの代わりに System.ServiceModel.Channels.Message クラスを使用する必要があるのはなぜですか?

例えば:

1) 以下を使用できます。

public Person GetPersonById(int id)
{
    Person person = Employees.CreateEmployees().First(e => e.Id == id);
    return person;
}

2) しかし、以下も使用できます。

public Message GetPersonById(Message id)
{
    string firstName = Employees.CreateEmployees().First(e => e.Id == id.GetBody<int>()).FirstName;
    Message response = Message.CreateMessage(id.Version, ReplyAction, firstName);
    return response;
}

違いは何ですか?どちらの場合も同じ結果になりますか?

4

1 に答える 1

1

短い答え - より高いレベルの抽象化です。
たとえば、サービスが実際にコントラクトを変更したり、負荷分散 WCF プロキシを想像したりせずに、拡張可能なメッセージ タイプのリストを送信しなければならない場合などです。

また、メッセージ処理パイプラインでは、この種の抽象化なしにメッセージを処理するための汎用メカニズムを作成することは不可能です。

于 2012-10-10T21:45:57.720 に答える