0
我有一個名爲MyClass
的類,它有一堆屬性(字符串,布爾值,整數等)。將IEnumerable <MyClass>映射到類
我也有一個IEnumerable<SomeOtherClass>
集合,其中包含鍵/值項目。
我想鍵/值項的這份名單中MyClass
映射到不同的屬性有沒有辦法與AutoMapper或反射另一種方式來做到這一點?
謝謝!
我有一個名爲MyClass
的類,它有一堆屬性(字符串,布爾值,整數等)。將IEnumerable <MyClass>映射到類
我也有一個IEnumerable<SomeOtherClass>
集合,其中包含鍵/值項目。
我想鍵/值項的這份名單中MyClass
映射到不同的屬性有沒有辦法與AutoMapper或反射另一種方式來做到這一點?
謝謝!
普通方法
SomeClass cls = new SomeClass();
Type type = cls.GetType();
foreach (SomeOtherClass somecls in IEnumerableClass)
type.GetProperty(somecls.KeyPropName).SetValue(cls, somecls.ValuePropName, null);
或擴展方法,如果IEnumerable的類是鍵值對集合
public static T ToObject<T>(this IDictionary<string, dynamic> source) where T : class
{
T obj = new T();
Type type = obj.GetType();
foreach (KeyValuePair<string, dynamic> item in source)
type.GetProperty(item.Key).SetValue(obj, item.Value, null);
return obj;
}
使用這種像下面。
SomeClass somecls = IEnumerableClass.ToObject<SomeClass>();
OR
SomeClass somecls = ToObject(IEnumerableClass);
感謝JAG - 工作一種享受 – AdrianSean