标签: castle-windsor

在Windsor Installer中使用强类型配置参数

我一直在使用自定义配置对象安装Windsor容器.这似乎很简单,但显然有一些重要但我没有得到.如果你能帮我填补这个空白,我将不胜感激.

我有一个配置类:

class MyConfiguration
{
    int SomeIntValue;
    DateTime SomeDateValue;
    Action<string> SomeActionValue;
}
Run Code Online (Sandbox Code Playgroud)

我想将这些配置值作为构造函数参数传递给已注册的实现.我想注册看起来应该是这样的:

public class MyInstaller : IWindsorInstaller
{
   public void Install(IWindsorContainer container, IConfigurationStore store)
   {
      container.Register(Component.For<IFoo>.ImplementedBy<Foo>
        .Parameters(Parameter.ForKey("parameter1").Eq( INSERT VALUE HERE (?) );
   }
}
Run Code Online (Sandbox Code Playgroud)

那么我如何获取这些值并将它们传递给安装程序?我应该使用这个IConfigurationStore参数吗?如果是这样,我该如何填写它以及我该怎么做呢?

此外,似乎所有配置对象都只能存储字符串值,那么如何传递非字符串的值(例如DateTime)?

谢谢,周末愉快.

c# dependency-injection castle-windsor castle inversion-of-control

0
推荐指数
1
解决办法
1658
查看次数

使用Simple Injector代替Castle Windsor用于Glass Mapper

我正在阅读有关Glass.Mapper的文章.它看起来不错,是我想用于工作项目的东西.我们实际上将Glass.Mapper用于某些项目,但我们正在循环中简化我们的工具集,并决定使用Simple Injector进行IoC.这里:http://www.glass.lu/Mapper/Sc/Tutorials/Tutorial1我可以读到Glass.Mapper在与Sitecore一起使用时存在两个项目:

  1. Glass.Mapper.Sc
  2. Glass.Mapper.Sc.CastleWindsor

在Glass.Mapper主页的教程中,他们只展示了如何使用Glass.Mapper.Sc.CastleWindsor,他们没有展示如何实现Glass.Mapper可以使用的第三个IoC容器.但我认为有可能,当他们公开Glass.Mapper.Sc包时,但我无法找到任何解释,当我想要实现自己的时候,所以我开始认为有你自己做多少工作呢?我应该依赖Glass.Mapper.Sc.CastleWindsor,只需要这样做http://www.glass.lu/Blog/MixingInIoc,那么我也可以使用Simple Injector吗?

或者我错过了什么,这实际上是世界上最容易做到的事情吗?

c# castle-windsor ioc-container simple-injector glass-mapper

0
推荐指数
1
解决办法
1032
查看次数

使用Castle Windsor注入依赖关系

考虑我有一个界面.

interface Interface<A> {}  
Run Code Online (Sandbox Code Playgroud)

现在我有2个实现此接口的类:

class ClassOne<A>: I<A> {}
class ClassTwo<A>: I<A> {}  
Run Code Online (Sandbox Code Playgroud)

现在我想在第三个类中使用这两个类.

class child
{
    child(Interface<A> objCA,Interface<A> objCB)
    {}
}  
Run Code Online (Sandbox Code Playgroud)

我无法使用Castle Windsor为子类注入依赖项.即使我注入它,它只传递一个对象到它们所有.那么如何使用Castle Windsor解决这个问题呢?

c# castle-windsor

0
推荐指数
1
解决办法
231
查看次数

自定义代码中的 Castle Windsor 解析实例

如何利用温莎的生活方式管理,但有自己的解决方法?目前我注册我的依赖如下:

_container.Register(Component.For<DbContext>()
    .ImplementedBy<EntityContext>().DependsOn(Dependency.OnValue("connectionName", "EntityContext"))
    .LifestylePerWebRequest());
Run Code Online (Sandbox Code Playgroud)

我想通过以下 lambda 解决依赖关系:

() => {
    return new EntityContext("EntityContext");
}
Run Code Online (Sandbox Code Playgroud)

这怎么能结合?

c# castle-windsor

0
推荐指数
1
解决办法
832
查看次数