gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:13:16 24 4
gpt4 key购买 nike

我试图创建一个 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/

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