gpt4 book ai didi

.net - 温莎城堡 : How to specify a constructor parameter from code?

转载 作者:行者123 更新时间:2023-12-04 01:50:38 24 4
gpt4 key购买 nike

说我有以下类(class)

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

我可以通过xml向城堡温莎注册它的一个实例,如下所示
<component id="sample"  service="NS.IMyComponent, WindsorSample" type="NS.MyComponent, WindsorSample">  
<parameters>
<start_at>1</start_at >
</parameters>
</component>

我将如何在代码中做完全相同的事情? (注意,构造函数参数)

最佳答案

编辑:在 Fluent Interface 中使用以下代码的答案:)

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<IMyComponent>()
.ImplementedBy<MyComponent>()
.Parameters(Parameter.ForKey("start_at").Eq("1")));

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

}
}

关于.net - 温莎城堡 : How to specify a constructor parameter from code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/87812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com