C# - 使用不同类型的对象作为函数参数

时间:2014-04-08 04:14:14

标签: c#

我正在编写一个解析JSON的函数,可能会返回不同类型的对象。 比如说,我正在解析一只鸟json,想要返回一个鸟类对象,然后是一只老虎json,并希望得到一只老虎对象。

我该怎么做?我应该使用动态对象吗?而且,如果这是答案,怎么样?

我不想重写我希望从中得到的每种类型对象的逻辑。

提前致谢,

爱丽儿

2 个答案:

答案 0 :(得分:1)

您使用的是JSON.NET吗?无论如何,泛型似乎是正确的答案。像这样:

public T CreateAnimal<T>(string json) {
    return JsonConvert.DeserializeObject<T>(json);
}

请注意,为了使用它,您必须提前知道在json中期望的对象类型,因此您可以这样调用它:

Tiger t = CreateAnimal<Tiger>(tigerJson);

答案 1 :(得分:0)

为防止膨胀代码,您可以实例化动物对象convention-based

Activator.CreateInstance("YourAssemblyNameContainingAnimalTypes", animalString);