Я хочу добавить динамические свойства и динамически к объектам. В то время как аналогичный вопрос здесь используется ExpandoObject
:Динамическое добавление динамических свойств во время выполнения
Dynamically Add C# Properties at Runtime
Хотя выше ответ добавляет свойства динамически, он не в полной мере ощутить свою необходимость. Я хочу иметь возможность добавлять переменные свойства.
Что reaaly нужно сделать, это написать универсальный метод, который принимает объект типа T
и возвращает расширенный объект со всеми полями этого объекта плюс еще немного:
public static ExpandoObject Extend<T>(this T obj)
{
ExpandoObject eo = new ExpandoObject();
PropertyInfo[] pinfo = typeof(T).GetProperties();
foreach(PropertyInfo p in pinfo)
{
//now in here I want to get the fields and properties of the obj
//and add it to the return value
//p.Name would be the eo.property name
//and its value would be p.GetValue(obj);
}
eo.SomeExtension = SomeValue;
return eo;
}
Большой answe Спасибо. –