在 .NET 6 中,可以使用动态类型来给一个类动态添加字段。下面是示例代码:

using System;

public class MyClass
{
    public string MyProperty { get; set; }
}

public static class DynamicFieldExtension
{
    public static void AddField<T>(this T obj, string fieldName, object value)
    {
        var dynamicObject = obj as dynamic;
        dynamicObject[fieldName] = value;
    }
}

public class Program
{
    public static void Main()
    {
        var myObj = new MyClass();
        myObj.AddField("MyDynamicField", 10);

        Console.WriteLine(myObj.MyDynamicField); // 输出:10
    }
}

在上面的代码中,我们定义了一个 DynamicFieldExtension 静态类,其中包含一个 AddField<T> 的扩展方法。该方法接受一个泛型参数 T,用于指定要添加字段的对象类型,以及一个字段名和一个字段值。在方法内部,我们将对象转换为 dynamic 类型,并使用字段名作为索引来动态添加字段和赋值。

Main 方法中,我们创建了一个 MyClass 对象 myObj,并使用 AddField 方法在运行时动态添加了一个名为 MyDynamicField 的字段,并将值设置为 10。最后,我们通过访问 myObj.MyDynamicField 来获取添加的字段值并进行输出。


原文地址: https://www.cveoy.top/t/topic/p05B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录