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>();

将变量设置为静态会在服务的所有实例中保持不变。 它现在可以正常工作了。