Я создал класс, который наследует DynamicObject
и хочет создать статический метод, который может создавать новые экземпляры с заранее определенными свойствами (хранимыми в Dictionary
).
public class CustomDynamic : DynamicObject
{
protected Dictionary<string, object> InnerDictionary;
public static T Create<T>(Dictionary<string, object> dictionary) where T : CustomDynamic , new()
{
return new T
{
InnerDictionary = dictionary
};
}
}
Применение:
dynamic d = new Dictionary<string, object>();
var realPlayer = CustomDynamic.Create<Player>(d as Dictionary<string, object>);
var dynaPlayer = CustomDynamic.Create<Player>(d);
realPlayer // Player type according to VS2013
dynaPlayer // dynamic type according to VS2013
Поскольку существует только одна сигнатура метода, почему передача в динамическом возврате динамического объекта? Или на самом деле просто Visual Studio 2013 запутался?