C# 项目之间类中的对象持久性

C# 项目之间类中的对象持久性,c#,class,C#,Class,我知道我不应该问这个,但不管我错过了什么,都快把我逼疯了!我以前做过很多次,我只能把它归因于年老和轻微衰老 我有一个类,它有两个在构造函数中初始化的对象 public class EbayFunctions { private static ApiContext apiContext = null; private static List<StoreCategoriesFlattened> storeCategories = new List<StoreCat

我知道我不应该问这个,但不管我错过了什么,都快把我逼疯了!我以前做过很多次,我只能把它归因于年老和轻微衰老

我有一个类,它有两个在构造函数中初始化的对象

public class EbayFunctions
{
    private static ApiContext apiContext = null;
    private static List<StoreCategoriesFlattened> storeCategories =  new List<StoreCategoriesFlattened>();

    public EbayFunctions()
    {
        ApiContext apiContext = GetApiContext();
        List<StoreCategoriesFlattened> storeCategories = GetFlattenedStoreCategories();
    }
    public string GetStoreCategoryIdForItem(string category)
    {
       var result = storeCategories.Find(x => x.CCDatabaseMatch == category);
       return ""; //Ignore will return a value
    }
}
但是,
apiContext
在调用之间持续存在,但是
storeCategories
EbayFunctions ebf=new EbayFunctions()上填充字符串ddd=ebf.GetStoreCategoryIdForItem(“电机>自行车”)时,代码>为空被调用

我知道这很愚蠢,但我错过了什么?

你的问题就在这里:

private static ApiContext apiContext = null;
private static List<StoreCategoriesFlattened> storeCategories =  new List<StoreCategoriesFlattened>();

public EbayFunctions()
{
    ApiContext apiContext = GetApiContext();  // local!!
    List<StoreCategoriesFlattened> storeCategories = GetFlattenedStoreCategories();  // local!!
}
此外,正如所指出的,静态成员的初始化应该完成一次——最好是在静态构造函数中:

static EbayFunctions()
{
    apiContext = GetApiContext();
    storeCategories = GetFlattenedStoreCategories();
}
你的问题是:

private static ApiContext apiContext = null;
private static List<StoreCategoriesFlattened> storeCategories =  new List<StoreCategoriesFlattened>();

public EbayFunctions()
{
    ApiContext apiContext = GetApiContext();  // local!!
    List<StoreCategoriesFlattened> storeCategories = GetFlattenedStoreCategories();  // local!!
}
此外,正如所指出的,静态成员的初始化应该完成一次——最好是在静态构造函数中:

static EbayFunctions()
{
    apiContext = GetApiContext();
    storeCategories = GetFlattenedStoreCategories();
}

我不理解问题标题中
持久性
的含义。@leppie OP希望
apiContext
storeCategories
的值在实例之间“持久化”,因为它们是
静态的
@DStanley:谢谢,应该想到这一点!我责备星期一。@leppie觉得你很幸运,我不得不责备老年人!!;)我不理解问题标题中
持久性
的含义。@leppie OP希望
apiContext
storeCategories
的值在实例之间“持久化”,因为它们是
静态的
@DStanley:谢谢,应该想到这一点!我责备星期一。@leppie觉得你很幸运,我不得不责备老年人!!;)我又犯了一个明显的错误!我真的开始觉得我失去了它。也许该换个工作了!谢谢<代码>此
不能应用于
静态
字段。请改用类名。@Patrickhoffman很好,我删除了那个部分,并添加了您关于使用静态构造函数的建议。我犯了另一个明显的错误!我真的开始觉得我失去了它。也许换个职业换架子的工作已经过期了!谢谢<代码>此
不能应用于
静态
字段。改用类名。@patrickhoffman Good catch-我删除了该部分,并添加了您关于使用静态构造函数的建议。