Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET WCF服务中的属性_.net_Wcf_Web Services - Fatal编程技术网

.NET WCF服务中的属性

.NET WCF服务中的属性,.net,wcf,web-services,.net,Wcf,Web Services,在WCF服务中使用属性时遇到问题。我可以在界面中将属性定义为: [ServiceContract(Namespace = "http://some-url.com/")] interface ISomeInterface { [OperationContract] int SomeMethod(string someArg); int SomeProperty { [OperationContract] get; } } 但是当客户端使用该属性时,该属性的

在WCF服务中使用属性时遇到问题。我可以在界面中将属性定义为:

[ServiceContract(Namespace = "http://some-url.com/")]
interface ISomeInterface
{
  [OperationContract]
  int SomeMethod(string someArg);

  int SomeProperty
  {
    [OperationContract]
    get;
  }
}

但是当客户端使用该属性时,该属性的底层方法
get\u SomeProperty()
将被公开,而不是作为getter属性。有没有办法告诉客户将其视为财产?(或者我必须放弃在服务合同中使用属性吗?

世界上任何地方的SOAP web服务都不支持属性。无法在WSDL中描述属性。Web服务只涉及操作(方法)。

世界上任何地方的SOAP Web服务都不支持属性。无法在WSDL中描述属性。Web服务只涉及操作(方法)。

在WCF中,您所能做的就是在客户端和服务器之间发送消息

客户端从来没有直接访问服务器对象的rpc样式的权限-因此,您不能显示属性或类似的内容

您所能做的就是序列化消息,并将它们发送到带有
[OperationContract]
的方法。我相信这不能应用于属性的setter方法


Marc

在WCF中,您所能做的就是在客户端和服务器之间发送消息

客户端从来没有直接访问服务器对象的rpc样式的权限-因此,您不能显示属性或类似的内容

您所能做的就是序列化消息,并将它们发送到带有
[OperationContract]
的方法。我相信这不能应用于属性的setter方法


Marc

Web服务不公开属性。它只公开客户端可以调用的方法(Web服务是无状态的…因此拥有属性真的没有意义,因为它们总是初始值)。

Web服务不公开属性。它只公开可由客户端调用的方法(Web服务是无状态的……因此拥有属性真的没有意义,因为它们总是初始值)。

使用DataMember属性

[DataMember]
int SomeProperty
{
   get;
}
您必须确保对象是可序列化的

这将为您的对象创建一个复杂类型,并添加一个元素,如

<xs:element minOccurs="0" name="SomeProperty" type="xs:int" /> 

使用DataMember属性

[DataMember]
int SomeProperty
{
   get;
}
您必须确保对象是可序列化的

这将为您的对象创建一个复杂类型,并添加一个元素,如

<xs:element minOccurs="0" name="SomeProperty" type="xs:int" /> 


谢谢你的回答,这很有道理。“不”是一个非常有用的答案。:-)谢谢你的回答,这很有道理。“不”是一个非常有用的答案。:-)描述Web服务使用的类型系统。WCF使用对象上的
DataContract
DataMember
属性支持这一点。描述Web服务使用的类型系统。WCF使用对象上的
DataContract
DataMember
属性支持这一点。