0

私が取り組んでいるプロジェクトでは、それらのほとんどが 1 つの基本クラスから継承するいくつかのモデル クラスがあります。基本クラスは、サブ クラス タイプの属性でマークされています。

私のサービスでは、関数は基本クラスのオブジェクトを返します。関数の実装はもちろんサブクラスの 1 つを返します。

プロキシ クラスの作成に Visual Studio を使用すると、サブ クラスのインスタンスを直接返すサービスにメソッドがないため、サブ クラスなしでプロキシに基本クラスのみが作成されます。

私の質問 サービスで直接使用されていない場合でも、プロキシ ジェネレーターにサブクラスのクラスを強制的に生成させる方法はありますか?

4

1 に答える 1

1

ServiceKnownTypeAttribute を使用します。

[DataContract]
[KnownType(typeof(ResponseType1))]
[KnownType(typeof(ResponseType2))]
public class BaseResponseType
{
    ...
}

[DataContract]
public class ResponseType1: BaseResponseType
{
    ...
}

[DataContract]
public class ResponseType2: BaseResponseType
{
    ...
} 

次に、サービス操作:

[OperationContract]
BaseResponseType ProcessSomething (Something thing);
于 2013-10-09T08:07:29.147 に答える