2

いくつかのプロパティを持つクラスがあり、そのうちの1つはオブジェクトになるため、ExtraDataと呼びましょう。これは、3つの異なるタイプのいずれかのオブジェクトであり、3つすべての間に共有フィールドはありません。

3つのオブジェクトクラスすべてが実装するマーカーインターフェイスを作成し、ExtraDataプロパティをそのインターフェイスタイプにする必要がありますか?私が読んだことはすべて、.NETでこれを回避し、可能な限りカスタム属性を使用することを示しています。これを行う場合、ExtraDataを単純なオブジェクトにし、属性をチェックしてそのタイプを判別しますか?このデータを使用し、属性をチェックしてそれに応じてキャストしたい場合、これは多くの余分な作業のように思えます。

これは「マーカーインターフェイスを使用しない」ルールの例外ですか?それとも私は明らかな何かを見逃していますか?

ありがとう。

4

1 に答える 1

1

あなたの意図が何であるかは本当に明確ではありません。あなたの実際の質問に答えるために、そのようなインターフェースを使用することは完全に受け入れられ、アプローチの知恵を無視して、プロパティの値を少数のタイプに制限する必要がある場合、それは正当なアプローチのようです。

実際には、もっと良いアプローチがあるかもしれませんが、あなたがしていることについてのより多くの情報がなければ、私は何も提案することができません。

于 2012-04-16T14:01:48.700 に答える