Я знаю, що є кілька питань, які стосуються цього, але відповіді, як правило, слідують за рекомендацією словника або збірника параметрів, що не працює в моїй ситуації.
Я використовую бібліотеку, яка працює за допомогою роздумів, щоб робити багато розумних речей з об’єктами з властивостями. Це працює з визначеними класами, а також динамічними класами. Мені потрібно зробити цей крок далі і зробити щось подібне:
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;
}
Бібліотека чудово працює з динамічним типом змінних, із властивостями, призначеними вручну. Однак я не знаю, скільки або яких властивостей буде додано заздалегідь.