从客户端访问wcf接口方法

时间:2011-07-19 18:28:20

标签: wcf

这是接口文件中的一个类。

[DataContract]
public class ClassX
{
    public ClassX()
    {
        ClassXParameters = new List<ClassXParameter>();
    }

    public void Add(string name, string value)
    {
        ClassXParameters.Add(new ClassXParameter() { Name = name, Value = value });
    }

    [DataMember]
    public List<ClassXParameter> ClassXParameters { get; set; }
}


[DataContract]
public class ClassXParameter
{
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Value { get; set; }
}

在客户端我正在尝试做这样的事情

ClassX classx = new ClassX();
classx.Add("testname", "testvalue");

但是这个.Add方法甚至都不可见。

目前我在做

ClassX classx = new ClassX();

List<ClassXParameter> params = new List<ClassXParameter()>;
params.add(new ClassXParameter() {Name="testname", Value="testvalue"});
classx.ClassXParameters = params;

无论如何我能做我想做的事吗?

注意:我不确定为什么上面的一些文字是粗体。

2 个答案:

答案 0 :(得分:1)

如果从头开始自动生成客户端代码,它将生成一个新类,其中包含标有DataContract的成员和属性。

如果您希望客户端上有可用的方法,则可以通过将DataContract类型放在自己的程序集中来实现此目的,该程序集是从服务器和客户端引用的。生成服务引用时,必须选择重用现有类而不是生成新类的选项。

通常,将数据验证规则放在数据协定类属性设置器中是合适的。在客户端重用数据协定程序集将导致数据验证直接在客户端上进行,而无需往返。它还会导致错误发生在比报告为反序列化错误更容易发现的地方。

答案 1 :(得分:0)

数据合同仅供数据使用。任何方法都不会在客户端上显示。

大胆是因为“-----”。