さまざまなオブジェクトのコレクションに複数の型を実装する必要がないように、GenericDataContractクラスを使用しようとしています。
Exp:
オブジェクトのコレクションを含むProfileオブジェクトがあります。
そのため、プロファイルにFooまたはFoo1オブジェクトのコレクションが含まれているものがProfile<Foo>
必要Profile<Foo1>
です。
WCFはジェネリッククラスをサポートしていないことを読んでいますが、実際に発生するエラーは次のとおりです。
Type 'GL.RequestResponse.ProfileResponse
1 [T]'はオープンジェネリック型であるため、スキーマ型としてエクスポートできません。ジェネリック型は、すべてのジェネリックパラメータ型が実際の型である場合にのみエクスポートできます。
これで、ProfileResponseは、私が使用しようとしているこのProfileオブジェクトです。
今私のホストで私は次のことをしています。:
ServiceConfig(typeof(ProfileHandler<EducationResponse>).Assembly,
typeof(ProfileRequest).Assembly,
typeof(Container)).Initialize();
これは、データコントラクトを使用したハンドラーの定義です。
public class ProfileHandler<T> : RequestHandler<ProfileRequest,
ProfileResponse<T>>
コンテナはWindsorContainerを使用してオブジェクトを登録しています。
登録は正常に機能しますが、WCFプロセッサのサービスホストをインスタンス化し、ホストのOpen Methodを呼び出すと、上記のエラーが発生します。
agathaを使用してwcfの一般的な応答要求を作成する方法は本当にありませんか?そのコレクションに含まれるタイプごとにProfileコンテナークラスを定義する必要があるのは、このような無駄のように感じます。
ありがとう。