gpt4 book ai didi

c# - 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

转载 作者:可可西里 更新时间:2023-11-01 07:43:40 25 4
gpt4 key购买 nike

我只是想了解为什么我不能在 Web 服务中使用静态 Web 方法?为什么要限制?

有人能给我简明的解释吗。

最佳答案

答案是:因为你做不到。

它不是那样设计的。设计是创建一个web服务类的实例,然后调用一个实例方法。

我只能猜测微软为什么这样设计。要确定,你必须问他们。考虑:

  1. 允许使用静态方法并没有什么特别的好处。任何你可以用静态方法做的事情,你也可以用实例方法做。
  2. [WebService] 类并不意味着是某个恰好用作 Web 服务的任意类。它应该是您为公开 Web 服务操作而创建的类。因此,无需支持已经存在且已经具有静态方法的类。
  3. SOAP Header 实现允许您的类包含从 SoapHeader 类派生的类型的实例字段。该字段将填充传入的 SOAP header 和/或将包含要返回的 SOAP header 。您不能使用静态字段执行此操作,因为它会被每个请求覆盖。

正如我所说,这些都是猜测。这个问题的正确答案是,“你不能,因为微软就是这样设计的。如果你想知道他们为什么这样设计,你需要问他们”。


FWIW,我刚刚检查过,WCF 似乎也不允许静态方法作为操作。

关于c# - 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com