1

私は nettcpbinding コールバック関数の初心者です。

パラメータパスexに基づいて結果を取得する必要があるシナリオがあります。messageId を取得し、パブリッシャーが messageId に基づいてサブスクライブ クライアントにパブリッシュしたときの結果データを取得します。

ありがとう、

4

1 に答える 1

1

属性を使用してこれを行うことができKnownTypeます。

結果クラスは、可能なすべての派生クラスで装飾された基本クラスから継承する必要があります。

[KnownType( typeof( ResultClassOne ) )]
[KnownType( typeof( ResultClassTwo ) )]
class ResultBase
{
  public int MessageId { get; set; }
}

class ResultClassOne : ResultBase
{
  ... other properties
}

class ResultClassTwo : ResultBase
{
  ... other properties
}

これにより、すべての派生クラスを適切にシリアル化できます。

次に、コントラクト インターフェイスで基本クラスを使用します。

ResultBase Method( int messageId )

実装では、正しい派生クラスのインスタンスを返します。

public ResultBase Method( int messageId )
{
  if ( messageId == 1 ) return new ResultClassOne();
  ...
于 2013-01-11T10:57:39.683 に答える