2012-03-07 3 views
2

私はDataContractSerializerがオプトインであることを理解しています...シリアル化されるべきプロパティまたはフィールドはDataMemberAttributeで装飾されています。WCFデータ契約の一部ではないことを示す標準的なアプローチは?

プロパティがデータコントラクトの一部であるべきではないことを(コンパイラではなく別のプログラマに)簡潔に示すための標準的なメソッドまたは少なくとも共通のメソッドがありますか?

XmlSerializerXmlIgnoreです(オプトアウトシリアライザなので、必要です)。 Hibernateはtransientアノテーションを持っています。

将来のメンテナーのために文書化するのに最適な方法は何ですか「はい、確かにDataMember属性を残すことを意味しますか?

+0

私の推測では、標準的なアプローチはなく、おそらく独自の属性を作成するのが最善の方法です。 – svick

+0

これは他の開発者に伝えるべき情報なので、そのタイプのドキュメントが最適な場所だと思います。 –

+0

私の懸念は、多くのメンテナーが物事を "修正"しようとする前に必ずしもそのタイプのドキュメントを読んでいるとは限りませんということです。悲しい、しかしあまりにもしばしば真実。私は、最も明確で最も簡潔なアプローチを決めるつもりです。私はXML Docのコメントを考えました...悪いアプローチではなく、独自の属性と考えていました(おそらく、DataMember属性を追加しようと思っている箇所があるので良いでしょう) –

答えて

3

私があなたを正しく理解していれば、IgnoreDataMemberAttributeがあなたの望むものです。

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ignoredatamemberattribute.aspx

は、この情報がお役に立てば幸いです。 Nate

+0

それは良い考えです。 'IgnoreDataMember'属性は' DataContract'属性でクラスを修飾していないときに起こる全てのメンバーのデフォルトの直列化を抑止するためのものですが、単にマーカーとして機能しているので、 – luksan

+0

パーフェクト。新しいものを学びました。 –

関連する問題