6

プロジェクト A が C# クラス ライブラリであり、プロジェクト B がプロジェクト A に依存するコンソール アプリケーションであるとします。

プロジェクト A では、次のクラスが定義されています。

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

「RazorMailBase」は、プロジェクト A によって参照される外部 dll、ActionMailer.dll に含まれています。

プロジェクト B では、次のクラスが定義されています。

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

プロジェクト B で ActionMailer.dll が参照されていない場合、コンパイラは、ActionMailer.dll への参照が必要であることを示すエラー メッセージを生成します。プロジェクト B で外部 dll への参照が必要ないようにこれを構造化する方法はありますか?

4

3 に答える 3

1

EmailFareMonitorAlertNotifierいいえ。最終的にアセンブリから派生する限りexternal.dll、コンパイラとランタイムが型を使用するために必要な情報を取得できるように、それを参照する必要があります。

于 2013-02-19T19:32:21.533 に答える
0

絶対的な最小値として、プロジェクト B は独自の型の継承階層に存在するすべてのアセンブリを参照する必要があるEmailFareMonitorAlertNotifierため、答えはノーだと思います。

于 2013-02-19T19:34:54.153 に答える
0

いいえ。ActionMailer.dll を参照するプロジェクト B の任意のタイプへの参照をすべて削除しても、エラーは表示されません。しかし、RazorMailBaseは ActionMailer.dll で定義されているため、 use への参照ActionMailNotifier、または外部ライブラリのクラスから派生したその他の型が必要です。

于 2013-02-19T19:32:32.543 に答える