我有一些代码可以从字符串表示中创建一个类型化的值。此代码处理值类型,类,数组等。
不幸的是,升级到VS 2015后,代码分析会在编译时输出此错误:
CS0452类型' T'必须是参考类型才能将其用作参数' T'通用类型或方法' Foo.Bar(string)'
在VS 2012或2013下未发生此错误,并且代码已正确编译并正常运行。
ProfileValue.Value的类型为String。 在CreateValue中,T可以是值类型,类等。
致电代码:
doc.Load(Server.MapPath("\\Reports\\CrystalReport1.rpt")",CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
被叫方法签名:
doc.Load(@"D//CrystalReport1.rpt",CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
这在VS 2013中通过了代码分析,效果很好。我该怎么做才能解决新的VS 2015代码分析错误?
答案 0 :(得分:0)
当代码使用动态时,看起来VS 2015下的代码合同失败了。这是由于Roslyn编译器的变化。