我只是想了解为什么我不能静态Web方法在Web服务? 为什么限制?
一些身体能不能给我的这个简明的解释。
我只是想了解为什么我不能静态Web方法在Web服务? 为什么限制?
一些身体能不能给我的这个简明的解释。
答案是:因为你不能。
它不是这样设计的。 该设计是Web服务类的实例将被创建,然后一个实例方法将被调用。
我只能猜测为何微软设计它的方式。 要知道肯定,你应该去问他们。 考虑:
[WebService]
类并不意味着是碰巧被用作Web服务一些任意类。 它的意思是,你对暴露的Web服务操作的目的而创建的类。 因此,没有必要支持已经存在的类和已有的静态方法。 SoapHeader
类。 这个字段将被填充有传入的SOAP报头和/或将包含SOAP头部被返回。 你不能用静态场做到这一点,因为这将与每个请求被覆盖。 正如我所说,这些都是猜测。 正确答案的问题是,“你不能因为这是微软如何设计它。如果你想知道为什么他们设计了这样的说法,你需要问他们。”
FWIW,我只是检查,并不会出现WCF允许静态方法是操作要么。
当客户端创建为Web服务的对象,他们真正创建一个代理对象到Web服务。 这个代理对象处理之类的东西打开和关闭你的连接,为你以及实际上与Web服务工作的所有开销。 静态方法调用会难以管理。 “静态代理”由于缺乏一个更好的词就必须做所有的事情,代理对象的实例,每一次一个客户端调用的静态方法一个做的,从而增加了大量的开销。