6

インターフェイスを実装するクラスで使用する必要がある属性を持つインターフェイスを作成する方法はありますか?

つまり、クラス Foo がインターフェイス IFoo を実装し、IFoo が ObserveMeAttribute を持つ必要があると定義されている場合、IFoo を実装するには、Foo に ObserveMe が定義されている必要があります。

編集:

属性は EntityTypeAttribute と呼ばれ、ビュー モデルのエンティティ タイプを指定するために使用されます。

[EntityType(typeof(User))]
public class UserViewModel
{
...
}

属性は拡張メソッド AddModel(T TModel) で使用され、属性は TModel から読み取られ、そのプロパティ タイプ entityType はエンティティ スタブ オブジェクトの作成に使用されます。

4

2 に答える 2

2

簡単な答えは「いいえ」です。IFoo を実装するためにすべてのオブジェクトがこの値を持たなければならないのなら、なぜそれを IFoo インターフェイスの一部にしないのでしょうか?

属性は主に、実行時にリフレクションを使用してクラス/メソッド/パラメーターに関する追加の宣言情報を見つけるためのメカニズムです。

于 2012-11-06T17:08:58.963 に答える