2011-04-19 4 views
1

우리는 시작될 때 많은 코드 클래스를 여러 메모리 어셈블리에 컴파일하는 응용 프로그램을 가지고 있습니다. Castle Windsor에 이러한 유형을 등록하려고 시도하고 있지만 인스턴스화 할 수 없습니다. 타입 타입을 찾을 수 없다고합니다.캐슬 윈저 및 메모리 어셈블리에서 유형 등록하기; 그것은 가능한가?

가능하면 누구에게 알리십니까? Windsor 컨테이너를 인스턴스화하기 전에 XML 구성 파일을 사용하고 있으며 DLL을 컴파일해야합니다. 다음은 현재 사용중인 구성의 예입니다. 디스크에 실제 DLL이 없으므로 여기에 형식 선언에 DLL 이름을 지정하지 않습니다.

<!-- Register the Filtering provider, which is specified in the custom script --> 
    <component id="FilteringProvider" 
       type="Optimus.Scripts.Filtering.FilteringProvider" 
       service="Optimus.Filtering.Lib.IFilteringProvider, Optimus.Filtering.Lib" 
       > 
    </component> 

친절 감사 노엘은

+0

코드로 구성 요소를 등록 해 보았습니까? – mathieu

+0

코드를 통해 시도하지 않았습니다. 요구 사항은 외부 등록을위한 것입니다. 나는 그것을 어쨌든 시도하고 내가 그런 식으로 달성 할 수 있는지 보도록하겠다. 그러나 실제로 외부 등록을 찾고 있습니다. – Bigtoe

+0

주제에서 벗어나지 만, 내가 왜 궁금 해서요. 왜 설정에 등록해야합니까? –

답변

1

하여 특정 어셈블리 코드에서 구성 요소를 등록 할 수 있습니다 : 여기

container.Register(
    AllTypes.Of<IService>() 
    .FromAssembly(myAssemly)); 

당신은 당신의 동적 컴파일 된 어셈블리를 전달합니다.

http://docs.castleproject.org/Windsor.Registering-components-by-conventions.ashx

+0

감사합니다. 그게 우리를 위해 일할 것 같습니다. 컴파일 된 DLL에 특정 유형의 서비스 인스턴스가 1 개만 있다고 가정 할 경우 또한 캐슬의 최신 버전으로 업그레이드해야합니다. – Bigtoe

관련 문제