我知道有一些问题可以解决这个问题,但是答案通常遵循推荐字典或参数集合的方式,在我的情况下不起作用。
我正在使用通过反射工作的库,以对具有属性的对象进行许多巧妙的操作。这适用于定义的类以及动态类。我需要进一步迈出一步,并按照以下方针做点事情:
public static object GetDynamicObject(Dictionary<string,object> properties) {
var myObject = new object();
foreach (var property in properties) {
//This next line obviously doesn't work...
myObject.AddProperty(property.Key,property.Value);
}
return myObject;
}
public void Main() {
var properties = new Dictionary<string,object>();
properties.Add("Property1",aCustomClassInstance);
properties.Add("Property2","TestString2");
var myObject = GetDynamicObject(properties);
//Then use them like this (or rather the plug in uses them through reflection)
var customClass = myObject.Property1;
var myString = myObject.Property2;
}
该库可以很好地与动态变量类型配合使用,并具有手动分配的属性。但是我不知道将要预先添加多少个属性。