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-我删除了该部分,并添加了您关于使用静态构造函数的建议。