在静态构造函数中动态加载程序集

时间:2010-08-27 02:29:55

标签: c# static constructor

我已阅读以下代码:

    public class DalFactory
    {
        private static IDataContext _instance = null;

        static DalFactory()
        {
           string asm = ConfigurationManager.AppSettings["DAL-Assembly"];
           string cls = ConfigurationManager.AppSettings["DAL-Type"];

           Assembly a = Assembly.Load(asm);
           _instance = (IDataContext) a.CreateInstance(cls);
        }

        public IDataContext GetDataContext()
        {
           return _instance
        }
    }

GetDataContext方法将根据配置文件返回实例。 我的问题是:由于静态构造函数仅在创建第一个DalFactory实例之前初始化一次,因此稍后更改的配置文件将不会生效。这意味着我们只能在应用程序运行后创建一个固定类型的对象。这是真的吗?

1 个答案:

答案 0 :(得分:1)

嗯......那不是问题。但是,这是真的。

通常,配置文件不应在应用程序运行期间更改。