C#
[C#] Class to ExpandoObject / dynamic
Minius
2021. 11. 9. 16:36
반응형
class로 정의된 데이터에 하나의 정보를 더 넣을 일이 생겼는데,
하나하나 연결해주자니 코드의 양도 많아지고, 따라서 오류가 생길수도 있었다.
찾아보니 좋은 방법이 있어서 기록한다.
var person = new Person { Id = 1, Name = "John Doe" };
var expando = new ExpandoObject();
var dictionary = (IDictionary<string, object>)expando;
foreach (var property in person.GetType().GetProperties())
dictionary.Add(property.Name, property.GetValue(person));
이후 dictionary에 값을 추가해주면 된다.
참조:
How do you convert any C# object to an ExpandoObject?
I've read a lot about how ExpandoObject can be used to dynamically create objects from scratch by adding properties, but I haven't yet found how you do the same thing starting from a non-dynamic C#
stackoverflow.com