我有一个非常奇怪的问题。 我有一个有效的WCF服务。
[ServiceContract]
public interface IService
{
[OperationContract]
int AddResult(int result, string name);
[OperationContract]
int list(int count);
}
在另一个课程中,我有这项服务的实施。它有效。 但是当我像这样更改方法“list”时:
[ServiceContract]
public interface IService
{
[OperationContract]
int AddResult(int result, string name);
[OperationContract]
List<string> list(int count);
}
当我从目标项目(它是Windows Phone应用程序)添加服务引用时,我收到了一些错误和警告。它们的关键思想是无法加载服务(或无法加载端点)。 两种方法之间的差异非常小 - 列表而不是int类型。但这至关重要。 为什么会这样?为什么我不能使用List?
答案 0 :(得分:1)
您是否尝试将List集合封装到代理类中?你可以尝试类似的东西:
[DataContract]
public class MyData
{
[DataMember]
public List<string> list { get; set; }
}
[ServiceContract]
public interface IService
{
[OperationContract]
int AddResult(int result, string name);
[OperationContract]
MyData list(int count);
}
另外,看看这个link,我认为这可能就是你要找的。 p>
<强>更新强>
根据此主题的评论部分的讨论,问题不在于WCF服务本身,而是在@ user1460819 Windows Phone应用程序中生成的客户端上。
将WCF服务绑定更改为“basicHttpBinding”后,此问题得以解决,客户端的WCF引用已重新生成,整个项目已重建。