2011-04-11 4 views

답변

0

나는 당신이 AppDomain.AssemblyResolve 이벤트를 사용할 수 있다고 생각하지 않지만, 시도 할 수도있는 것은 using MEFDirectoryCatalog을 사용하여 실제 구현을 해결하는 것입니다.

그래서 SVC 코드가 뒤떨어져 있거나 (코드를 제거하고 별도의 어셈블리에서 SVC를 클래스로 지정하면) (테스트되지 않은)이 모양이됩니다. 이 특정 방법을 시도하지는 않았지만 작동하지 않을 이유가 없습니다.

public class YourServiceClass : YourServiceContract 
{ 
    [Import] 
    private IContract Implementation { get; set; } 

    private DirectoryCatalog _directoryCatalog = null; 
    private CompositionContainer _container = null; 

    public YourServiceClass() 
    { 
     _directoryCatalog = new DirectoryCatalog(YourDirectoryPathHere); 
     _container = new CompositionContainer(_directoryCatalog); 
     _container.ComposeParts(this); 
    } 

    //Operation 
    public void DoSomething() 
    { 
     Implementation.DoSomething(); 
    } 
} 

MEF 코드를 기본 클래스로 옮길 수도 있습니다. MEF를 처음 사용하는 사람은 using MEF with a DirectoryCatalog입니다.

관련 문제