我想要一个使用复杂类型进行接口的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服务接口中的某些类属性?
答案 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 ";
}