Web服务类型的复杂性

时间:2010-10-25 11:11:38

标签: c# wcf

我使用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)'无法实现接口成员,因为它不是公共的。

2 个答案:

答案 0 :(得分:0)

你不应该在Pair构造函数

上有[DataMember]

答案 1 :(得分:0)

我没有将服务实现声明为公开。