c# - Webservice C# 构造函数不允许参数?

标签 c# asp.net web-services

我试图创建一个 Web 服务,该服务在其构造函数中采用一些参数来保存往返行程,但我不断收到错误消息: CS1729 “servicename”不包含采用“1”个参数的构造函数

尽管当我尝试在本地(与服务在同一个项目中)创建即时信息时,一切正常......有什么好处?

网络服务:

public class ayyash : System.Web.Services.WebService {

    private string _myname;
    public ayyash (string myname) {


        _myname = myname;

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }
}

消费:

ayyash a = new ayyash("my name is ayyash");

输出:

Compiler Error Message: CS1729: 'ayyash' does not contain a constructor that takes '1' arguments

最佳答案

当您实例化您的客户端代理时,不会调用服务器端构造函数。它在创建服务器端对象时被调用;也就是说,是否以及何时调用 Web 服务方法。

同样没有值(value)的是您不能在 Web 服务上拥有实例成员。您不能在构造函数中接受“名称”并在其他方法中使用它;您必须将“名称”作为参数发送到每个 Web 服务方法中。简而言之,Web 服务“状态”必须通过方法参数或 cookie 传递给服务(尽管如果您迁移到 WCF,使用后者会给您带来问题)。

想象一下,每次您在代理对象上调用一个方法时,都会创建一个新的服务器端对象,并且在该对象被销毁之前调用该方法。这并不完全正确(对象可以被池化),但它会帮助您设计您的 Web 服务。

关于c# - Webservice C# 构造函数不允许参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320207/

相关文章:

jquery - 'panelName' 的 DefaultButton 必须是 IButtonControl 类型的控件的 ID

python - uwsgi + nginx + pypy Web 服务基准测试

web-services - 尝试调用网络服务时发生异常

c# - 使用 MVC5 应用程序将数据库从本地 SQL 切换到 AZURE DB

asp.net - 是否需要授予应用程序池身份对Web文件夹的读取权限?

c# - 如何使用 Route 属性将查询字符串与 Web API 绑定(bind)?

web-services - Delphi:通过wsdl/xsd实现服务器 SOAP

c# - Linq连接查询错误

c# - .NET Core SDK 的错误 : Version 5. 0.10 0-alpha1-014696 需要至少版本 16.3.0 的 MSBuild

c# - 如何调用具有数据绑定(bind)的通用方法?