Large, Complex Objects as a Web Service Resultに関する最近の質問の続きです。私は、将来のすべての子クラスが XML にシリアライズ可能であることを保証する方法について考えてきました。
さて、明らかにIXmlSerializableインターフェースを実装してからリーダー/ライターをそれにチャックすることができますが、それは、それをしたいときはいつでもリーダー/ライターをインスタンス化する必要があることを意味するため、99.99% の時間は避けたいと思います。文字列で作業するので、自分で書くだけです。
ただし、XML にシリアル化するには、クラスとそのメンバーをXml で装飾するだけですか??? 属性 ( XmlRoot、XmlElementなど) を作成し、それをXmlSerializerとStringWriterに渡して文字列を取得します。これはすべて良いことです。文字列を返すメソッドを汎用ユーティリティ メソッドに入れるつもりなので、型などを気にする必要はありません。
私に関係するこれはこれです:クラスを必要な属性で装飾しないと、実行時までエラーはスローされません。
属性の装飾を強制する方法はありますか? これは FxCop で実行できますか? (私はまだ FxCop を使用していません)
アップデート:
やるべきことがたくさんあります。
FxCopに頼るのではなく、テストケースでリフレクションを使用するというアイデアが間違いなく好きです(すべてをまとめるのが好きです)。Fredrik Kalsethの答えは素晴らしかったです.コードを含めてくれてありがとう.自分でやり方を考えよう!
同様の提案については、他の人に+1してください:)