Létrehoztam egy osztályt, amely örökli a DynamicObject
értéket, és szeretném olyan statikus metódus létrehozásához, amely előre meghatározott tulajdonságokkal (a Dictionary
-ban tárolva) tud új példányokat létrehozni.
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
};
}
}
Használat:
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
Mivel csak egy metódusaláírás létezik, a dinamikus átadás miért ad vissza dinamikus objektumot? Vagy valójában csak a Visual Studio 2013 kezd összezavarodni?