Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Mengubah Suai Atribut Masa Jalan .NET Secara Dinamik?

Bolehkah Anda Mengubah Suai Atribut Masa Jalan .NET Secara Dinamik?

Susan Sarandon
Susan Sarandonasal
2025-01-04 04:22:38450semak imbas

Can You Modify .NET Runtime Attributes Dynamically?

Penyesuaian Atribut Masa Jalan

Dalam pembangunan, situasi timbul apabila atribut perlu diubah suai semasa masa jalan, walaupun pengehadan dikenakan oleh vendor pihak ketiga. Mengambil kira kelas dengan atribut seperti:

public class UserInfo
{
    [Category("change me!")]
    public int Age
    {
        get;
        set;
    }
    [Category("change me!")]
    public string Name
    {
        get;
        set;
    }
}

Mengubah suai Kejadian pada Masa Jalan

Bertentangan dengan persepsi, tika atribut boleh diubah suai semasa masa jalan. Dengan mendapatkan contoh atribut, kami boleh membuat pengubahsuaian nilai seperti:

ASCII[] attrs1 = (ASCII[])
    typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
attrs1[0].MyData = "A New String";
MessageBox.Show(attrs1[0].MyData);

Memelihara Nilai Atribut Tidak Berubah

Adalah penting untuk ambil perhatian bahawa seruan berikutnya untuk mendapatkan kejadian atribut akan tidak terjejas oleh pengubahsuaian masa jalan:

ASCII[] attrs3 = (ASCII[])
    typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
 MessageBox.Show(attrs3[0].MyData); // Original value

Atas ialah kandungan terperinci Bolehkah Anda Mengubah Suai Atribut Masa Jalan .NET Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn