3

我有一个 WCF 服务 (.svc) 项目,如下所示:

[ServiceContract]
public interface IAdminQueries
{

    [OperationContract]
    List<Color> GetColors();

    [OperationContract]
    List<PhoneType> GetPhoneTypes();

    ...

我有另一个项目是 Web 应用程序。我向上述服务添加了服务引用。单击 Advanced 按钮并从 Collection Type 中选择 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。

有什么建议么?

4

2 回答 2

1

在名为 Fix 的 EDIT 之后,答案出现在我的原始帖子中。但我也不妨把它贴在这里。

这一切都开始了,因为我必须将 VS 2012 项目转换为 VS 2010。我正在使用很多很棒的功能,但必须降级。无论如何,VS 2012 中的参考资料之一是 Newtonsoft.Json。我在几个地方使用它。当我在 VS 2010 中取出并重建时,一切正常。现在我需要更多的测试来看看我可以使用 Json 序列化而不是 Newtonsoft。

于 2012-11-14T21:24:25.437 回答
0

在添加了服务引用的客户端中,右键单击服务引用并选择“配置服务引用”,在数据类型部分下,它应该为集合类型列出“System.Array”(因为这是为非 .NET 客户端兼容性)。在此区域中,您可以将其更改为默认发出通用列表而不是数组。

于 2012-11-08T21:30:20.880 回答