在.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/iiWo 著作权归作者所有。请勿转载和采集!

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