2017-11-03 16 views
-4

많은 수업을 가진 DLL을 사용하고 있습니다. 이 클래스들을위한 동적 인 인터페이스를 구현하고 싶습니다. 그런 다음 모의 테스트를 할 수 있습니다.C# dll에서 클래스에 대한 인터페이스를 구현하는 방법이 있습니까?

방법이 있습니까?

예 :

DLL이

public class Comunicator 
{ 
    public void Execute() 
    { 
     //execute something 
    } 
} 

커뮤니케이터는 dinamically 아래의 인터페이스를 구현하는이 클래스를 수행하는 방법은 클래스를 거기에있다?

public interface IComunicator 
{ 
    void Execute(); 
} 

내가

public IComunicator Comunicator{ get; set; } 

아래의 속성이 할당

Comunicator = new Comunicator(); 
+0

이 질문은 불분명에게 이해할 수있을 것이다. –

+0

dll에서 인터페이스를 구현하려고했을 때 어떤 일이 발생 했습니까? 너? –

+0

죄송합니다. 내 질문에 대한 더 나은 설명을 작성했습니다. –

답변

1

을 이해할 수 있음을 원하는이 방법은 동적으로 아래의 인터페이스를 구현하는이 클래스를하는 방법이 있나요 ?

짧은 답변 : DLL이 제 3 자 라이브러리입니다

경우 NO는 당신이 그것을 통제 할 수 없기 때문에 그 클래스를 수정하기 위해 할 수있는 일은 없다.

그러나 자신 만의 클래스와 추상화를 만들어 타사 종속성을 캡슐화 할 수는 있습니다. (클래스가 밀봉되어 있지 않은 경우 )

당신은 재산

public class MyCommunicator : Communicator, ICommunicator { 

} 

원하는 인터페이스이 방법을

public interface IComunicator { 
    void Execute(); 
} 

그리고 중 하나를 사용하여 캡슐화

public class MyCommunicator : ICommunicator { 
    private readonly Communicator communicator = new communicator(); 

    public void Execute() { 
     communicator.Execute(); 
    } 
} 

또는 상속을 만들 이하

,
public IComunicator Comunicator{ get; set; } 

이 할당

obj.Comunicator = new MyComunicator(); 
+0

감사합니다.이 솔루션으로 문제가 해결되었습니다. –