我是C#的新手,我不确定为什么这个单例模式会抛出System.TypeIntializationException:
以下是ViewModel设置对ProductRepository单例的引用:
private void BindingChartView_Load(object sender, EventArgs e)
{
// Call the method that creates a DataSet
ProductRepository taskRepo = this.SetupData();
}
以下是ProductRepository单例的定义方式:
namespace Chart.Model
{
public class ProductRepository
{
private static readonly ProductRepository instance;
public static ProductRepository Instance
{
get { return instance; }
}
static ProductRepository()
{
instance = new ProductRepository();
}
private ProductRepository()
{
InitializeRepos();
}
}
}
编辑:这是我对Setup()方法的看法。 InitializeRepos()全部被注释掉了。
private ProductRepository SetupData()
{
taskRepo = ProductRepository.Instance;
return taskRepo;
}
基本上,对taskRepo的监视是向我显示异常的,它表示它是由Chart.Model.ProductRepository.Instance抛出的。
答案 0 :(得分:1)
我道歉,我发现问题是在私有构造函数中引用第三方dll的类,就在InitializeRepos()之后。我在这里解析了它以简化,但结果却是罪魁祸首。