我的项目是WCF服务(.svc),如下所示:
[ServiceContract]
public interface IAdminQueries
{
[OperationContract]
List<Color> GetColors();
[OperationContract]
List<PhoneType> GetPhoneTypes();
...
我有另一个项目是Web应用程序。我在上述服务中添加了服务参考。单击“高级”按钮,然后从“集合类型”中选择“Generic.List”。一切似乎都应该如此。
然后我使用以下代码构建并获取错误:
AdminQueriesClient db = new AdminQueriesClient();
List<Color> s = db.GetColors();
这是错误:
Cannot implicitly convert type 'DogLicenseBO.DogLicenseServiceReference.Color[]' to 'System.Collections.Generic.List<DogLicenseBO.DogLicenseServiceReference.Color>'
阻塞或覆盖正常序列化/反序列化过程的东西是什么?
修改 我让它再次运作。但是,我认为我需要我拿出来的东西。
修复 这一切都是因为我必须将VS 2012项目转换为VS 2010.我使用的很多功能但必须降级。无论如何,VS 2012中的一个参考文献是Newtonsoft.Json。我在几个地方使用它。当我在VS 2010中完成并重建时,一切正常。现在我需要更多测试来查看我可以用于Json序列化而不是Newtonsoft。
有什么建议吗?
答案 0 :(得分:1)
在编辑修复后,答案在我原来的帖子中。但我也可以在这里发布它。
这一切都是因为我必须将VS 2012项目转换为VS 2010.我使用的很多功能但必须降级。无论如何,VS 2012中的一个参考文献是Newtonsoft.Json。我在几个地方使用它。当我在VS 2010中完成并重建时,一切正常。现在我需要更多测试来查看我可以用于Json序列化而不是Newtonsoft。
答案 1 :(得分:0)
在已添加服务引用的客户端中,右键单击服务引用并选择“配置服务引用”,在数据类型部分下,它应列出“System.Array”的集合类型(因为这是为非.NET客户端兼容性发出的默认值)。在此区域中,您可以将其更改为默认情况下发出通用列表而不是数组。