代码之家  ›  专栏  ›  技术社区  ›  Stewart Johnson

.NET:使用配置文件选择具体类

  •  1
  • Stewart Johnson  · 技术社区  · 17 年前

    (这个问题特别适用于C#,但通常适用于.NET)

    我有一个较大的应用程序,它的设计相当好,并在接口上分为主要部分(这样做是为了帮助并行开发)。

    我们现在有一组实现所需接口的主要具体类,但我们也有用于替代情况和测试的额外具体类。

    目前,我们在代码的顶层将所有这些类整合在一起:

    IMyInterface xComponent = new ConcreteXComponent1();
    

    如果我想换掉组件,那么我只需要更改那一行并重新编译:

    // IMyInterface xComponent = new ConcreteXComponent1();
    IMyInterface xComponent = new ConcreteXComponentAlternative();
    

    这工作得很好,但显然需要重新编译——我宁愿使用配置文件中的值来选择具体的类。

    使用配置文件更改具体类的标准模式是什么?有没有标准库可以为我解决这个问题?

    谢谢!

    4 回复  |  直到 17 年前
        1
  •  4
  •   Romain Verdier    17 年前

    你想看看IoC容器。(Spring.NET、StructureMap、Windsor等)

        2
  •  2
  •   Rune Grimstad    17 年前

    你可以用 Activator.CreateInstance 方法。其中一个重载方法接受一个类型名,并使用默认构造函数创建它的实例。然后,您可以将类的类型名称存储在配置文件中,并从应用程序中读取它。

        3
  •  1
  •   Daniel Kreiseder    17 年前
        4
  •  0
  •   David Robbins    17 年前

    使用IoC容器将创建一个可以动态加载的对象池或集合。Romain建议的框架将使用一个配置文件来描述对象及其实例化方式。

    推荐文章