我使用WCF开发了一些基本的Web服务。到目前为止,返回类型相当简单。以下是正常运行的操作合同:
[OperationContract]
string Vessel(int ID);
//lists all vessel
[OperationContract]
List<string> Vessels();
[OperationContract]
List<string> PortsLike(string LikeStr);
[OperationContract]
Port GetPort(string name);
这些都很漂亮。我现在试着推动信封,尝试以下方法:
[OperationContract]
List<Pair> Vessels(List<string> fields, List<Criterion> criteria);
其中Pair和Criterion是我定义的非常基本的类。
遗憾的是,这个最新的操作无法编译。这是因为我已经达到了网络服务可以容纳的范围,还是我做了明显错误的事情?
以下是配对和标准的定义:
[DataContract]
public class Criterion
{
[DataMember]
public string Key { get; set; }
[DataMember]
public string Operator { get; set; }
[DataMember]
public string Value { get; set; }
}
[DataContract]
public class Pair
{
[DataMember]
public string Key { get; set; }
[DataMember]
public string Value { get; set; }
public Pair(string key, string value)
{
this.Key = key;
this.Value = Value;
}
}
以下是我从编译器得到的错误:
错误1'VOps.VOpsService'未实现接口成员'VOps.IVOpsService.Vessels(System.Collections.Generic.List,System.Collections.Generic.List)'。 'VOps.VOpsService.Vessels(System.Collections.Generic.List,System.Collections.Generic.List)'无法实现接口成员,因为它不是公共的。
答案 0 :(得分:0)
你不应该在Pair构造函数
上有[DataMember]答案 1 :(得分:0)
我没有将服务实现声明为公开。