我们可以在客户端公开Web服务的公共属性吗?

时间:2011-08-19 15:47:17

标签: asp.net web-services vbscript getter-setter

我知道网络服务是无国籍的。我想知道是否有任何方式我们可以在客户端公开Web服务的公共属性(getter和setter)(客户端是vb使用者而不是javascript)?

3 个答案:

答案 0 :(得分:0)

您可以从网络服务“公开”的唯一内容是[WebMethod]


您可以使用以下代码访问您的网络服务:

Dim svc as New WebReference.MyWebService()
Dim result As Integer = svc.GetSomeInteger()
svc.SetSomeInteger(result)
Dim result2 As Integer = svc.GetSomeInteger()

您可能认为已经创建了Web服务类的实例。你还没有。您只在VB.NET代码中创建了代理类的实例。在上面的代码中,每次调用Web服务都会通过相同的客户端代理实例,但会转到服务器端Web服务类的不同实例。

即使Web服务具有属性,也只有字段,因为每次调用都有不同的Web服务实例,每次都会有不同版本的“SomeInteger”。

答案 1 :(得分:0)

Web服务是基于方法的,因此它们不是为访问属性而设计的。

但是没有理由不能像常规服务方法那样制作GetX / SetX方法 - 只需确保包含[WebMethod]属性。

答案 2 :(得分:0)

正如其他人所建议的那样,您需要使用get / set方法而不是属性。

至于从JavaScript访问Web服务,只需在URL中指定方法名称并执行XmlHttpRequest。