如何获得温莎城堡呼无参构造?
-
03-07-2019 - |
题
目前,我有一类,看起来是这样的:
public class MyClass : IMyClass
{
public MyClass()
{
//...
}
public MyClass(IMyRepository repository)
{
//...
}
}
在我的配置文件,我有IMyClass注册,但不IMyRepository.我的意思是温莎使用的构造,不采取任何参数,但我得到这个消息:
不可能创造的成分'MyClass',因为它 具有依赖性,以满足她MyClass正在等待下 相关性:
服务:-名字空间。IMyRepository这是没有注册。
我找到了 另一个职位 说得容器会打电话的构造与大多数参数,它可以满足。那么,为什么它想要呼叫的构造与一个参数,它不知道如何满足?
解决方案
也许你们使用旧版的温莎...这一工作得很好,对我来说:
[TestFixture]
public class WindsorTests {
public interface ISomeInterface {}
public class AService {
public int Id { get; private set; }
public AService() {
Id = 1;
}
public AService(ISomeInterface s) {
Id = 2;
}
}
[Test]
public void Parameters() {
var container = new WindsorContainer();
container.AddComponent<AService>();
var service = container.Resolve<AService>();
Assert.AreEqual(1, service.Id);
}
}
不隶属于 StackOverflow