Web服务复杂类型只读属性

时间:2018-02-19 10:42:35

标签: c# web-services interface

我想要一个使用复杂类型进行接口的WCF Web服务。

bool SetFunction(MyComplexType data);

MyComplexType GetFunction(int compextDataId);

public class MyComplexType
{
    public string LabelNo { get; set; }
    public DateTime? InsertDate { get; set; }
}

我不希望我的客户端设置MyComplexType的所有属性,但可以阅读其中一些属性。

当我部署这些函数时,会生成wsdl,其中包含MyComplexType的所有属性,我不希望客户端设置某些特定值(InsertDate)当他们使用GetComplexType时,他们应该读取这些值,因为他们需要它。

我试着玩{get;组;生成特定的接口,但我必须在服务器端使用它们。

如何使用相同的类隐藏Web服务接口中的某些类属性?

1 个答案:

答案 0 :(得分:0)

如果您使用的是WCF,那么使用数据合同可以解决您的问题。

以下是使用[DataContract]属性装饰MyComplexType的示例代码。请注意,当您没有使用Datamember标记任何公共属性时,它不会出现在WSDL中。

[DataContract]
public class MyComplexType
{
    public string TestStringNotVisible { get; set; } //this won't be displayed

    [DataMember]
    public bool TestBoolVisibleInWsdl { get; set; } = true;

    [DataMember]
    public string TestStringVisibleInWsdl { get; set; } = "Hello ";
}