温莎安装程序配置

斯巴达科

我有一个使用Windsor构建的应用程序,该应用程序具有功能,并且所有组件都在xml中手动注册,该xml也包含其配置。这是一个例子:

<component type="type">
  <parameters>
      [...]
  </parameters>
</component>

我决定重构我的组件,并将它们分成windsor安装程序,每个功能一个安装程序。我现在的问题是决定将每个安装程序中注册的组件的配置放在哪里。

在做出此决定之前,用户可以在xml的parameters元素中找到组件的适当配置,而我不必编写有线逻辑即可工作。

现在我有些困惑,因为似乎我已经没有这种自动机了。由于我决定通过xml声明应用程序的安装程序,因此我认为将这种配置放入installr元素中可能是完美的:

<installers>
 <install assembly="myassembly">
  <parameters>
    [...]
  <parameters>
 </install>
</installers>

我不知道温莎是否支持这种语法。如果是这样,那么我想知道如何从安装程序内部访问它,以及如何将其连接到我的组件和服务。

另一个可行的替代方法是在xml上创建并注册一个包含我功能的所有配置的组件:

<components>
 <component type="featureConfiguration">
  <parameters>
  </parameters>
 </component>
</components>

在这种情况下,我猜想我必须重构组件,以使它们在其构造函数中接收此类参数,而在拥有直接属性之前,换句话说,在我可以通过查看代码确切分辨出组件的依赖关系之前,通过这种新形式,我将整个配置传递给他们,但我现在不知道在此组件中使用了哪些特定配置属性。

为了使用第二种解决方案并避免这种混乱,我应该避免将整个配置传递给子组件,并让单个属性完成工作,但是我必须在此配置组件的属性与安装程序的组件和服务。

我认为,除了组件之外,我还可以将所有配置放入xml的properties元素中:

<properties>
 <featureConfiguration>
   [property list]
 </featureConfiguration>
</properties>

但同样,我必须在列表中的每个属性与组件的属性之间找到粘合点。

任何帮助表示赞赏。

谢谢你。

阿德里安·布拉德詹(Adrian Bradjan)

也许您会发现此混合解决方案很有帮助,具体取决于所需组件的参数化级别。即,您可以在安装程序中执行组件注册,并在windsor配置文件中设置组件的参数。当您需要对几个组件进行参数化设置同时让Windsor处理所有其他依赖项时,这很有用。

示例:假设您具有以下组件。

public class MyComponent
{
    public MyComponent(MyDependency dependency, string stringParameter, DateTime dateParameter)
    {
        this.Dependency = dependency;
        this.StringParameter = stringParameter;
        this.DateParameter = dateParameter;
    }

    public DateTime DateParameter { get; set; }

    public string StringParameter { get; set; }

    public MyDependency Dependency { get; set; }
}

public class MyDependency
{
}

然后,您可以使用以下安装程序进行注册。

public class MyInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.Register(Component.For<MyComponent>().Named("MyComponent"));
        container.Register(Component.For<MyDependency>());
    }
}

注意,我们已经明确地将组件的唯一名称设置为MyComponent但是您也可以使用默认的全名。

温莎的配置文件可能如下所示:

<configuration>
    <components>
        <component id="MyComponent">
            <parameters>
                <stringParameter>Some string</stringParameter>
                <dateParameter>2013/09/25</dateParameter>
            </parameters>
        </component>
    </components>
</configuration>

现在,您可以将所有内容包装在一起:

WindsorContainer container = new WindsorContainer();
container.Install(Configuration.FromXmlFile("windsor.config"));
container.Install(FromAssembly.This());

请注意,调用Install方法的顺序很重要。您必须首先安装配置文件设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

温莎安装程序配置

来自分类Dev

温莎城堡3.1 PerWebRequestLifestyleModule配置

来自分类Dev

使用同一安装程序从不同应用程序设置不同的温莎城堡生活方式

来自分类Dev

MySQL安装程序未配置MySQL

来自分类Dev

是为装饰器阵列配置温莎城堡的更好方法

来自分类Dev

温莎城堡按照约定从对象安装多实例服务

来自分类Dev

MSI安装程序与用户配置文件创建

来自分类Dev

作曲家正在忽略安装程序路径配置

来自分类Dev

安装QCMBundle-必须配置子节点“驱动程序”

来自分类Dev

导轨:在导轨上安装和配置引导程序6

来自分类Dev

WiX安装程序无法打开配置文件

来自分类Dev

WiX安装程序无法打开配置文件

来自分类Dev

CakePHP是否支持初始配置/ Web应用程序安装?

来自分类Dev

在APK安装上编写应用程序配置文件

来自分类Dev

全新安装时无法登录pfSense Web配置程序

来自分类Dev

在Plone Site安装程序中添加新的配置链接

来自分类Dev

apt升级期间未安装维护程序配置文件

来自分类Dev

使用 rails 应用程序安装 ssl 证书的 nginx 配置

来自分类Dev

使用Wix安装程序安装后,无法读取配置文件

来自分类Dev

runhaskell安装程序安装安装程序错误

来自分类Dev

尝试为HFS +安装Paragon ufsd Professional驱动程序时,内核配置无效错误

来自分类Dev

收到Wix安装程序错误代码2343,用于简单配置。(WIX新手)

来自分类Dev

在服务码头安装中配置电梯应用程序日志记录

来自分类Dev

如何使用有效签名创建预先配置的安装程序(MSI或EXE)?

来自分类Dev

libgit2sharp可以依赖于已安装的git全局配置提供程序吗?

来自分类Dev

尝试为HFS +安装Paragon ufsd Professional驱动程序时,内核配置无效错误

来自分类Dev

自动安装带有配置文件登录的dropbox守护程序(dropboxd),自动发出脚本问题

来自分类Dev

收到Wix安装程序错误代码2343,用于简单配置。(WIX新手)

来自分类Dev

在服务码头安装中配置升降机应用程序日志记录

Related 相关文章

  1. 1

    温莎安装程序配置

  2. 2

    温莎城堡3.1 PerWebRequestLifestyleModule配置

  3. 3

    使用同一安装程序从不同应用程序设置不同的温莎城堡生活方式

  4. 4

    MySQL安装程序未配置MySQL

  5. 5

    是为装饰器阵列配置温莎城堡的更好方法

  6. 6

    温莎城堡按照约定从对象安装多实例服务

  7. 7

    MSI安装程序与用户配置文件创建

  8. 8

    作曲家正在忽略安装程序路径配置

  9. 9

    安装QCMBundle-必须配置子节点“驱动程序”

  10. 10

    导轨:在导轨上安装和配置引导程序6

  11. 11

    WiX安装程序无法打开配置文件

  12. 12

    WiX安装程序无法打开配置文件

  13. 13

    CakePHP是否支持初始配置/ Web应用程序安装?

  14. 14

    在APK安装上编写应用程序配置文件

  15. 15

    全新安装时无法登录pfSense Web配置程序

  16. 16

    在Plone Site安装程序中添加新的配置链接

  17. 17

    apt升级期间未安装维护程序配置文件

  18. 18

    使用 rails 应用程序安装 ssl 证书的 nginx 配置

  19. 19

    使用Wix安装程序安装后,无法读取配置文件

  20. 20

    runhaskell安装程序安装安装程序错误

  21. 21

    尝试为HFS +安装Paragon ufsd Professional驱动程序时,内核配置无效错误

  22. 22

    收到Wix安装程序错误代码2343,用于简单配置。(WIX新手)

  23. 23

    在服务码头安装中配置电梯应用程序日志记录

  24. 24

    如何使用有效签名创建预先配置的安装程序(MSI或EXE)?

  25. 25

    libgit2sharp可以依赖于已安装的git全局配置提供程序吗?

  26. 26

    尝试为HFS +安装Paragon ufsd Professional驱动程序时,内核配置无效错误

  27. 27

    自动安装带有配置文件登录的dropbox守护程序(dropboxd),自动发出脚本问题

  28. 28

    收到Wix安装程序错误代码2343,用于简单配置。(WIX新手)

  29. 29

    在服务码头安装中配置升降机应用程序日志记录

热门标签

归档