2013-02-19 6 views
4

프로젝트 A는 C# 클래스 라이브러리임을 감안할 때 그 프로젝트 B는규칙 기본 클래스에서 상속

다음 클래스가 정의 프로젝트 A의 프로젝트 A.에 대한 종속성이있는 콘솔 응용 프로그램입니다 :

public class ActionMailNotifier : RazorMailerBase 
{ 
     private readonly string _viewPath; 
     private readonly EmailHost _emailConfig; 
        ... 
        ... 
} 

"RazorMailBase는"외부 DLL에 포함 , ActionMailer.dll은, 그 클래스는 다음이 정의 프로젝트 B에

프로젝트 A. 의해 참조 :

,
public class EmailFareMonitorAlertNotifier : ActionMailNotifier 
{ 
         ... 
         ... 
} 

ProjectMailer.dll이 Project B에서 참조되지 않으면 컴파일러에서 ActionMailer.dll에 대한 참조가 필요하다는 오류 메시지를 생성합니다. 프로젝트 B에서 외부 DLL에 대한 참조가 필요하지 않도록 구조화 할 수 있습니까?

+0

확실하지 않은 질문입니다. 참조하지 않고 다른 어셈블리의 코드를 사용할 수있는 방법이 있는지 묻고 있습니까? –

답변

1

번호 EmailFareMonitorAlertNotifier은 궁극적으로 어셈블리에서 파생되는 한 컴파일러와 런타임에 유형을 사용하는 데 필요한 정보가 있도록 참조해야합니다.

0

아니요. ActionMailer.dll을 참조하는 Project B의 모든 형식에 대한 참조를 모두 제거하면 오류가 표시되지 않습니다. 그러나 RazorMailBase이 ActionMailer.dll에 정의되어 있으므로 ActionMailNotifier 또는 외부 라이브러리의 클래스에서 파생 된 다른 형식을 사용해야합니다.

0

최소한 B 프로젝트는 자신의 유형 인 EmailFareMonitorAlertNotifier의 유산 계층에있는 모든 어셈블리를 참조해야하므로 대답은 '아니오'라고 생각합니다.