이 문제를 해결하는 몇 가지 질문이 있다는 것을 알고 있지만 대답은 일반적으로 내 상황에서 작동하지 않는 사전 또는 매개 변수 모음을 권장하는 줄을 따릅니다.
반사를 통해 작동하는 라이브러리를 사용하여 속성이있는 개체로 많은 영리한 작업을 수행하고 있습니다. 이것은 동적 클래스뿐만 아니라 정의 된 클래스에서도 작동합니다. 한 단계 더 나아가 다음과 같은 작업을 수행해야합니다.
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;
}
라이브러리는 속성이 수동으로 할당 된 동적 변수 유형에서 잘 작동합니다. 그러나 사전에 얼마나 많은 속성이 추가되는지 알 수 없습니다.