List .Add 不会传播到列表变量
List .Add is not propagated to list variable
我创建了一个列表来存储一些令牌对象
public class PSService : IPSService
{
private List<Token> validTokens = new List<Token>();
然后我通过 SoapUI 调用一个方法来向该列表添加一个标记。
private bool RegisterToken(Token token)
{
validTokens.Add(token);
//this loop successfully prints the list contents.
foreach (Token validToken in validTokens)
{
Console.WriteLine("registeredToken: " + validToken);
}
return true;
}
(为清楚起见删除了不相关的代码)
然后我有另一种方法可以读取该列表的内容。
但是当我通过 SoapUI 调用它时(在注册调用之后)我没有得到预期的响应
public bool PostProduct(Token auth, Product item)
{
Console.WriteLine("input: " + auth);
//Console.WriteLine("validtoks: "+ validTokens.First());
foreach (Token tok in validTokens)
{
Console.WriteLine("Valid: " + tok);
Console.WriteLine("Deze zijn equal: " + tok.Equals(auth));
}
return false;
}
(再次删除无关代码)
(评论)validTokens.First() 给出“列表不包含元素”错误。
循环不执行(因为没有元素)
方法都在同一个class.
我想我正在 RegisterToken 上下文中创建 validTokens 的副本,但我该如何避免这种情况?
由于@Guru stron 的评论,我调查了多个实例的可能性。
public class PSService : IPSService
{
private static List<Token> validTokens = new List<Token>();
将变量设置为静态会在服务的所有实例中保持不变。
它现在可以正常工作了。
我创建了一个列表来存储一些令牌对象
public class PSService : IPSService
{
private List<Token> validTokens = new List<Token>();
然后我通过 SoapUI 调用一个方法来向该列表添加一个标记。
private bool RegisterToken(Token token)
{
validTokens.Add(token);
//this loop successfully prints the list contents.
foreach (Token validToken in validTokens)
{
Console.WriteLine("registeredToken: " + validToken);
}
return true;
}
(为清楚起见删除了不相关的代码)
然后我有另一种方法可以读取该列表的内容。 但是当我通过 SoapUI 调用它时(在注册调用之后)我没有得到预期的响应
public bool PostProduct(Token auth, Product item)
{
Console.WriteLine("input: " + auth);
//Console.WriteLine("validtoks: "+ validTokens.First());
foreach (Token tok in validTokens)
{
Console.WriteLine("Valid: " + tok);
Console.WriteLine("Deze zijn equal: " + tok.Equals(auth));
}
return false;
}
(再次删除无关代码)
(评论)validTokens.First() 给出“列表不包含元素”错误。 循环不执行(因为没有元素)
方法都在同一个class.
我想我正在 RegisterToken 上下文中创建 validTokens 的副本,但我该如何避免这种情况?
由于@Guru stron 的评论,我调查了多个实例的可能性。
public class PSService : IPSService
{
private static List<Token> validTokens = new List<Token>();
将变量设置为静态会在服务的所有实例中保持不变。 它现在可以正常工作了。