я продлил IDictionary так:Способ вызова метода расширения IDictionary (отражение)?
public static T ToClass<T>(this IDictionary<string, string> source) where T : class, new()
{
T someObject = new T();
foreach (KeyValuePair<string, string> item in source)
{
someObject.GetType().GetProperty(item.Key).SetValue(someObject, item.Value, null);
}
return someObject;
}
И у меня возникают проблемы, используя метод, пробовал так:
TestClass test = _rep.Test().ToClass<TestClass>;
И он говорит, что не может преобразовать непредставленных тип делегата.
Каков порядок его вызова?
/Lasse
- UPDATE *
Изменен код:
public static T ToClass<T>(this IDictionary<string, string> source) where T : class, new()
{
Type type = typeof(T);
T ret = new T();
foreach (var keyValue in source)
{
type.GetProperty(keyValue.Key).SetValue(ret, keyValue.Value, null);
}
return ret;
}
Спасибо большое, Джордж, веселый xmas :) –