当前位置:  开发笔记 > Android > 正文

Castle Windsor:如何从代码中指定构造函数参数?

如何解决《CastleWindsor:如何从代码中指定构造函数参数?》经验,为你挑选了1个好方法。

说我有以下课程

MyComponent : IMyComponent {
  public MyComponent(int start_at) {...}
}

我可以通过xml使用castle windsor注册它的实例,如下所示

  
    
    1  
    
  

我将如何在代码中执行完全相同的操作?(注意,构造函数参数)



1> Chris Canal..:

编辑:使用Fluent接口使用以下代码的答案:)

namespace WindsorSample
{
    using Castle.MicroKernel.Registration;
    using Castle.Windsor;
    using NUnit.Framework;
    using NUnit.Framework.SyntaxHelpers;

    public class MyComponent : IMyComponent
    {
        public MyComponent(int start_at)
        {
            this.Value = start_at;
        }

        public int Value { get; private set; }
    }

    public interface IMyComponent
    {
        int Value { get; }
    }

    [TestFixture]
    public class ConcreteImplFixture
    {
        [Test]
        void ResolvingConcreteImplShouldInitialiseValue()
        {
            IWindsorContainer container = new WindsorContainer();

            container.Register(
                Component.For()
                .ImplementedBy()
                .Parameters(Parameter.ForKey("start_at").Eq("1")));

            Assert.That(container.Resolve().Value, Is.EqualTo(1));
        }

    }
}

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有