さまざまなクラスを公開するWCFがあります。一部のプロパティにDataAnnotation属性を適用しました。
コンシューマープロジェクトでも生成してほしいのですが、これを行う方法はありますか?
さまざまなクラスを公開するWCFがあります。一部のプロパティにDataAnnotation属性を適用しました。
コンシューマープロジェクトでも生成してほしいのですが、これを行う方法はありますか?
いいえ。WCFはメッセージベースのシステムであるため、クライアントとサービスを接続するのは、ネットワーク上でXMLでシリアル化されたメッセージ(およびその形式)だけです。
プロキシを作成する場合、WCFランタイムで実行できるのは、データ構造を再作成することだけです。これにより、クライアント側のクラスの1つをXMLでシリアル化するときに、ネットワーク上の表現がサーバー側のクラスと同じになります。
クライアントには、サーバーの腸に「到達」して、データ注釈などの.NET固有のものについて調べる方法がありません...
つまり、通信の両端を制御する場合、たとえばサーバーとクライアントの両方を作成する場合は、別のアプローチをとることができます。
MyData
そのクラスが参照される共有アセンブリに存在する場合、WCFランタイムはそれを再利用します(新しい個別のクライアント側プロキシクラスを再作成する代わりに)この「トリック」を使用すると、サービスとクライアント間で特定のクラス(データクラスなど)を共有できます。これには、すべての.NET属性が含まれます。