属性パラメータの動的変更
特定のシナリオでは、より正確な情報またはカスタマイズされた情報を提供するために、実行時に属性パラメータを調整する必要がある場合があります。 。次の例を考えてみましょう。
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
上記のようなサードパーティ クラスがあり、そのコードを変更できないとします。しかし、「私を変えてください!」ということに気づきました。カテゴリ名が不正確なので、動的に更新したいと考えています。
幸いなことに、リフレクションを通じて属性オブジェクトに直接アクセスすることで、実行時に属性インスタンス値を変更できます。
方法は次のとおりです:
ASCII[] attrs1 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
attrs1[0].MyData = "A New String";
MessageBox.Show(attrs1[0].MyData);
ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
以上がC# で実行時に属性パラメーター値を動的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。