2009-05-04 2 views
0

현재 다음과 같은 클래스가 있습니다.캐슬 윈저에게 매개 변수없는 생성자를 호출하는 방법

public class MyClass : IMyClass 
{ 
    public MyClass() 
    { 
     //... 
    } 
    public MyClass(IMyRepository repository) 
    { 
     //... 
    } 
} 

IMyClass는 등록되어 있지만 IMyRepository는 등록되어 있지 않습니다. 내 의도 윈저에 대한 매개 변수를 사용하지 않는 생성자를 사용할 수 있지만이 메시지가 나타납니다.

구성 요소 'MyClass'만들 수 없습니다. MyClass가 다음 종속성을 기다리고 있습니다.

Services : - 등록되지 않은 Namespace.IMyRepository.

컨테이너가 만족할 수있는 대부분의 인수를 사용하여 생성자를 호출 할 것이라고 another post가 발견되었습니다. 그렇다면 왜 그것을 만족시키는지를 모른다는 주장을 가지고 생성자를 호출하려고 하는가?

답변

1

어쩌면 당신은 윈저의 이전 버전을 사용하고 ...이 나를 위해 잘 작동합니다 :

[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); 
    } 
} 
+0

나는 최신 빌드를 다운로드하고 그것은 작동하고, 감사합니다! – MrDustpan

관련 문제