目前,我有一类,看起来是这样的:

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);
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top