ホームページ >バックエンド開発 >C++ >.NET ランタイム属性を動的に変更できますか?

.NET ランタイム属性を動的に変更できますか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 04:22:38374ブラウズ

Can You Modify .NET Runtime Attributes Dynamically?

実行時属性のカスタマイズ

開発では、サードパーティ ベンダーによって課された制限にもかかわらず、実行時に属性を変更する必要がある状況が発生します。次のような属性を持つクラスを考えてみます。

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); // Original value

以上が.NET ランタイム属性を動的に変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。