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