将变量作为泛型类型传递

时间:2017-11-02 12:21:54

标签: c# json.net

我试图从基类获取当前类类型,并将其作为参数传递。

代码应该是这样的:

public BaseClass
{
    public BaseClass()
    {
        var MyType = GetType();
        var A = JsonConvert.DeserializeObject<MyType>(...);
    }
}

所以,如果它是这样的实例:

public class MyObject : BaseClass

然后最后一次调用会:

 var A = JsonConvert.DeserializeObject<MyObject>(...);

但我无法找到如何将该类型作为参数传递。

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用JsonConvert.DeserializeObject(string value, Type type)。 它允许您指定要构建的对象的类型。

public BaseClass
{
    public BaseClass()
    {
        var MyType = GetType();
        var A = JsonConvert.DeserializeObject("{ json blob }", MyType);
    }
}

A的类型为MyTypeJsonConvert.DeserializeObject返回object,您必须将结果投射到您想要的位置。

文档可用here