Singleton类抛出System.TypeInitializationException

时间:2014-07-11 22:59:04

标签: c# singleton

我是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抛出的。

1 个答案:

答案 0 :(得分:1)

我道歉,我发现问题是在私有构造函数中引用第三方dll的类,就在InitializeRepos()之后。我在这里解析了它以简化,但结果却是罪魁祸首。