代码之家  ›  专栏  ›  技术社区  ›  joshua.ewer

autopac对于*可选*XML配置有最佳实践吗?

  •  1
  • joshua.ewer  · 技术社区  · 16 年前

    背景 :我想将一个库分发给其他一些开发人员(沿着一个SDK或工具包的线,抽象一些内部Web服务)。我使用autopac来注入不同版本的底层服务,主要是为了存根。我想将这个组件分发给各种各样的开发人员:了解IOC的用户和不了解IOC的用户。

    对于任何精明的开发人员,他们都可以创建自己的实现来注入。否则,开发人员应该能够使用不带配置的程序集,并且永远不会知道或关心IOC正在幕后发生。

    有趣的东西: 我可以为autopac提供XML配置,或者编程配置组件(后者是首选方法)。在这种情况下,直到运行时我才知道配置了什么,因此可能需要XML配置。有没有一种方法可以让autopac使用XML配置(如果存在),如果没有提供则忽略它?

    注:I 可以 通过检查特定部分(“autopac”)的配置手动实现此功能;如果没有,则不要调用

    builder.RegisterModule(new ConfigurationSettingsReader());
    

    有没有比手动检查配置更好的方法(最好是隐藏在autopac中的神奇的东西,因为它似乎可以做任何你要求的事情!)

    2 回复  |  直到 16 年前
        1
  •  1
  •   Min    16 年前

    在autopac上我只能看到wiki上的这个页面: http://code.google.com/p/autofac/wiki/StructuringWithModules 基本上你已经在做了。只需在所有其他注册之后运行XML注册。

    您的程序检查应该可以,但我想知道配置设置阅读器是否可以自动获取使用特定类型“autopac.configuration.sectionhandler,autopac”的任何内容。如果它能自动接收,我只需要检查一下,当没有定义任何内容时,尝试从配置设置中读取是否会使您的应用程序崩溃。

        2
  •  1
  •   Peter Lillevold Rene    16 年前

    要检查配置是否具有特定的部分,应使用 ConfigurationManager.OpenExeConfiguration . 它会给你一个 Configuration object 然后从那里检查sections属性以确定是否有autopac部分处理程序类型的部分。

    推荐文章