我正在尝试动态构建类似于 C# 类型初始化器的东西:
MyClass class = new MyClass { MyStringProperty= inputString };
我想构建一个泛型方法,该方法反映给定类型一次并返回一个委托,该委托创建类的新实例并根据输入参数填充它。方法签名可能如下所示:
Func<string,T> CreateFunc<T>();
调用结果函数将创建一个新的 'T' 实例,其中(例如)每个 String 类型的公共属性都与输入字符串参数的值相同。
因此,假设“MyClass”只有 MyStringProperty,下面的代码在功能上将等同于开头的代码:
var func = CreateFunc<MyClass>();
func.Invoke(inputString);
我对 System.Reflection 和 System.Linq.Expressions 命名空间非常熟悉,过去我也做过一些类似这样的中等复杂的事情,但这个让我很困惑。我想构建一个编译的委托,而不是简单地使用反射遍历属性。
谢谢!