2013-02-26 4 views

答えて

8

AttributeUsageは、MVCに固有のものではありません。それは、属性がどこでどのように使用されるかを記述する。

ほとんどの場合、コンパイラはこれらの制約を適用します。

しかし、「魔法の」ものは何も起こりません。あなたはまだ何かをするための属性を持つクラス/メンバを装飾する必要があります。言い換えれば、それは自動的にすべてのタイプまたはメンバーに適用されません。また、*

参照:http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.110).aspx

* Inheritedプロパティは、自動化の非常に限られた量を提供します。 How does inheritance work for Attributes?を参照してください。

+0

私は、小さな疑問を持っている上記の質問では、我々は密閉されたクラスを持っているとattributeUsage = trueのプロパティを継承しています。どうすればこのクラスが継承されなくなるのですか?説明してください。 –

+1

@LijinJohn - 属性自体は封印されていますが、 'Inherited'プロパティは* other *クラスに適用されたときの属性の動作を記述します。これらの他のクラスは封印することはできません。 –

0

これは他のすべてのタイプのアプリケーションとまったく同じことです(特別なMVC動作なし)。特定の属性がどこにあるのかを指定します。を使用します。

1

カスタム属性クラスの使用方法を指定します。 AttributeUsageは、カスタム属性定義に適用して新しい属性の適用方法を制御できる属性です。

したがって、基本的に、実装する属性クラスに関する追加情報がコンパイラに与えられます。

あなたは、いくつかの優れた例を持っているで:どこで、どの属性を使用することができます http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.100).aspx

0

AttributeUsageが決まります。したがって、あなたの例はクラスまたはメソッドに適用できますが、エンティティごとに1回しか適用できません。

自動的にはどのクラスにも関連付けられません。あなたは明示的にそれを行う必要があります。

はAttributeUsage上のC#プログラミングガイドを参照してください: http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.80).aspx

関連する問題