0

属性を使用してプロパティ値を設定する方法はありますか? View Modelにはプロパティがあります:

public bool HasAccess{get;set;} 

そして、このようなことをしたい:

[MyAttribute]
public bool HasAccess{get;set;}

また、MyAttribute は HasAccess の値を設定する必要があります。私の質問は、HasAccess の値を、属性内で与えられた値に設定する場所に MyAttribute を構築する方法です。

4

1 に答える 1

2

属性はtypeに関連付けられています。これは、Type.GetProperty() と PropertyInfo.GetCustomAttributes() で見つけることができます。オブジェクトのプロパティ値を設定するのには役立ちません。HasAccess が静的でない限り、それは見えません。つまり、PropertyInfo.SetValue() の最初の引数の値を指定できなくなります。

オブジェクト参照が既にある場合は問題ありません。その GetType() メソッドを使用して、オブジェクトを SetValue に渡します。しかし、それは属性クラスではなく、別の場所のコードです。

于 2012-04-25T01:41:05.520 に答える