List .Add不会传播到列表变量

问题描述 投票:0回答:1

我创建了一个列表来存储一些令牌对象

public class PSService : IPSService
{
    private List<Token> validTokens = new List<Token>();

然后我通过SoapUI调用方法以将令牌添加到该列表。

private bool RegisterToken(Token token)
    {
        validTokens.Add(token);

        //this loop succesfully 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()给出“列表不包含元素”错误。循环不执行(因为没有元素)

方法都在同一类中。

我认为我正在在RegisterToken上下文中创建有效令牌的副本,但是如何避免这种情况?

.net wcf
1个回答
0
投票

由于@Guru stron的评论,我调查了多个实例的可能性。

public class PSService : IPSService
{
    private static List<Token> validTokens = new List<Token>();

将变量设为静态会在所有服务实例中将其持久化。现在它可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.