C# 从Soap请求修改控制台应用程序中的列表数组
我目前正在从事一个c#/php/soap项目。主应用程序是控制台应用程序,php是管理控制台应用程序的web界面 在控制台应用程序中,有一个静态列表数组,当php web界面发布soap消息时,它调用控制台应用程序中的一个函数来更新数据库,然后应该更新列表数组。但是,这是可行的,因为它正在设置值,但是控制台应用程序没有看到它已被更改 看起来静态列表数组似乎只在soap服务中使用,而不是实际访问console应用程序正在查看的静态数组 如何更新此静态变量,以便控制台应用程序可以看到它已被修改 谢谢你能提供的帮助 更新 以下是我正在使用的代码 下面是公共web方法C# 从Soap请求修改控制台应用程序中的列表数组,c#,php,soap,C#,Php,Soap,我目前正在从事一个c#/php/soap项目。主应用程序是控制台应用程序,php是管理控制台应用程序的web界面 在控制台应用程序中,有一个静态列表数组,当php web界面发布soap消息时,它调用控制台应用程序中的一个函数来更新数据库,然后应该更新列表数组。但是,这是可行的,因为它正在设置值,但是控制台应用程序没有看到它已被更改 看起来静态列表数组似乎只在soap服务中使用,而不是实际访问console应用程序正在查看的静态数组 如何更新此静态变量,以便控制台应用程序可以看到它已被修改 谢谢
[WebMethod]
public List<SoapHandler.SoapStatusDetails> RetryEmailQueue(int emailId)
{
SoapHandler soapHandler = new SoapHandler();
List<SoapHandler.SoapStatusDetails> status = soapHandler.addEmailBackToQueue(emailId);
return status;
}
当我访问列表数组时,我执行以下操作
ManageEmail.Instance.queuedEmailIds.Add(emailId);
然而,这些变化并没有产生任何影响 在没有原始诊断的情况下,我认为您遇到的是一个实例问题,一个类的一个实例比另一个类具有引用值
这可能是查看的好地方,因此您总是引用同一个类实例。我意识到其中一个值是一个静态变量,但它是一个实例化变量(即列表)能否请您发布一份代码副本,在没有看到代码的情况下很难诊断。@johnmithell根据要求我添加了代码是的,我想这是一个需要使用单例的实例,现在,您可以在没有通用应用程序范围的静态变量实例的情况下访问它。
public List<int> queuedEmailIds = new List<int>();
public static ManageEmail instance;
private ManageEmail() { }
public static ManageEmail Instance
{
get
{
if (instance == null)
{
instance = new ManageEmail();
}
return instance;
}
}
ManageEmail.Instance.queuedEmailIds.Add(emailId);