2011-12-15 9 views
0

WCFサービスの一部であるいくつかのDatamembersでProduct Datacontractを使用しています。私はまた、DataContractSerializerを使ってこのProduct Datacontractを私のアプリケーションにシリアル化して保存します。WCFによって生成されたWSDLからスキーマ要素を削除します

ここで、サービスメタデータ(WSDL)が生成されるときに、Product DatacontractのDatamembersの一部を削除します。しかし、アプリケーション内でオブジェクトをシリアライズすると、Product DatacontractのすべてのDatamembersを利用できるようになります。

実際には、WSDL生成プロセスを把握し、必要なDatamembersを生成されたWSDLに注入しないようにします。情報を含まないために

おかげ Mofolo

答えて

2

ハッキングWSDLはあなたを助けにはなりません。あなたのサービスは、クライアントに渡す際やクライアントから逆シリアル化するときに、あなたの型の完全なシリアル化を引き続き使用します。 WSDLとWCFをハッキングするのではなく、WCFサービス用のDTOを使用する=実際にクライアントと交換したいプロパティのみを含む新しいタイプのセット。マスタオブジェクトをDTOに変換したり、その逆もできます(独自のカスタムコンバータを作成するか、AutoMapperのようなフレームワークを使用できます)。これがベストプラクティスです。

関連する問題