C# 在C中有条件地隐藏asmx web方法#

C# 在C中有条件地隐藏asmx web方法#,c#,web-services,conditional,asmx,webmethod,C#,Web Services,Conditional,Asmx,Webmethod,如何有条件地隐藏web方法?如果web.config中的标志设置为false,我不想公开web方法。如果这是真的,那么我将公开web方法 含义:如果标志为true,则该方法应仅对客户端可见,否则该方法不应对客户端可用 这在C#中可能吗 您可以检查方法中的标志,如果未设置,则抛出异常。您不能真正这样做 您的客户机“看到”web方法,因为它们列在WSDL中。WSDL生成是相当静态的-它基于方法上的[WebMethod]属性。实际上无法从生成的WSDL中删除项 如果你能切换到WCF,你会发现这要容易得

如何有条件地隐藏web方法?如果web.config中的标志设置为false,我不想公开web方法。如果这是真的,那么我将公开web方法

含义:如果标志为true,则该方法应仅对客户端可见,否则该方法不应对客户端可用


这在C#中可能吗

您可以检查方法中的标志,如果未设置,则抛出异常。

您不能真正这样做

您的客户机“看到”web方法,因为它们列在WSDL中。WSDL生成是相当静态的-它基于方法上的[WebMethod]属性。实际上无法从生成的WSDL中删除项


如果你能切换到WCF,你会发现这要容易得多。同时,您只需使用授权—防止某些客户端调用某些方法。

您所说的“公开”是什么意思?我的意思是,只有当web配置值为true时,该方法才应该对客户端可见,否则它不应该对客户端可用。如果标志为false,我不想让客户端看到该方法。这并不简单。您可以尝试覆盖列表系统;祝你好运。。我想我必须让这些方法保持原样:(谢谢John,我们正在迁移到WCF的过程中,但在asmx看到它发生之前还需要一些时间。