我想拥有一个使用复杂类型的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的所有属性生成,并且我不希望客户在使用getComplexType时设置一些特定值(插入(,因为他们需要读取这些值。
我试图玩{get;放;}要生成特定的接口,但我必须在服务器端使用这些接口。
我如何使用同一类隐藏Web服务接口的某些类属性?
如果您使用的是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 ";
}