【发布时间】:2019-10-27 10:44:25
【问题描述】:
我创建了一个class that inherits 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 感到困惑?
【问题讨论】: