2014-06-05 220 views
2

我是新来创建泛型方法并遇到了投射问题。通用方法无法将类型为'System.Object'的对象转换为X类型

以下是用于与API进行通信的类库。我试图将其投射到主应用程序中的对象,这可能是问题,但我不知道。我可能会做错什么?

​​
+2

今后,请附上*确切*你的问题的身体内的错误信息,说明它是否是一个编译时错误或异常,以及究竟在何处指示你得到的错误。 –

回答

2

我想投给生活在我的主要应用对象

这不是完全清楚你的意思,但是你想投的对象只是System.Object实例:

(T)new object() 

可以从未工作,除非T本身object

这里的问题似乎是,你要使用设计的方法与匿名类型(所以第二个参数是存在一个“榜样”,使类型推断的工作) - 但这样一种类型,不是匿名(T)。

我怀疑你只是想:

return JsonConvert.DeserializeObject<T>(restResponse.Content); 
+0

感谢乔恩......那很简单。整个DeserializeAnonymousType事情让我试图做任何事情来清除错误。 –

0

在你的方法最后一行(T)new object()是一个问题。这没有意义。您正在创建System.Object的新实例并尝试将其投射到T,其中T可能是任何东西。只有在使用通用参数T作为System.Object进行调用时,您的方法才会成功。例如GetRequest<object>(...)会通过,否则会失败。

我不确定你想在这里实现什么。如果您可以提供更多信息,将很容易提供帮助。

相关问题