1

我尝试在我的 VS 2010 MVC3 应用程序中实现 LinkedIn 身份验证。我参考来源

博客网站中的代码。但是我发现在构建代码时发生了错误。

请看下图。

在此处输入图像描述

此“T”对象中需要任何引用。

请帮忙。

更新问题

我根据@StuartLC 更新我的问题

在此处输入图像描述

4

3 回答 3

4

您需要像这样更改方法签名:

private T Deserialize<T>(string xmlContent)

然后,您每次调用该方法时都需要明确地提供类型参数,因为T无法推断(例如从参数中),即

var widget = Deserialize<Widget>(someXmlString);

编辑根据@pswg 的评论,如果这样做有意义,您也可以使整个类通用。然后,您不需要在Deserialize方法中指定类型参数,因为它现在是类中固有的。public但是,如果要在类之外调用该方法,则需要使该方法更加可见(例如)。

var widgetDeserializer = new MyDeserializerClass<Widget>();
var widget = widgetDeserializer.Deserialize(someXmlString);
于 2013-11-06T06:15:38.367 回答
2

您需要指定反序列化对象的类型...

private T Deserialize<T>(string xmlContent)
{
    ....
}
于 2013-11-06T06:20:15.217 回答
0

它应该是这样的

private T FuncName<T>(T param) where T : class
{
            return param;
}
于 2013-11-06T06:16:50.950 回答