从基类继承时的引用规则

时间:2013-02-19 19:29:44

标签: c#

鉴于项目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
{
                        ...
                        ...
}

如果Project B中未引用ActionMailer.dll,编译器将生成一条错误消息,指示需要对ActionMailer.dll的引用。有没有办法构建它,以便在项目B中不需要引用外部dll?

3 个答案:

答案 0 :(得分:1)

没有。只要EmailFareMonitorAlertNotifier最终派生自程序集external.dll,您就需要引用它,以便编译器和运行时具有使用该类型所需的信息。

答案 1 :(得分:0)

没有。如果您要删除项目B中引用ActionMailer.dll的任何类型的所有引用,您将看不到任何错误。但是,由于在ActionMailer.dll中定义了RazorMailBase,因此您必须具有使用ActionMailNotifier的引用,或者从外部库中的类派生的任何其他类型。

答案 2 :(得分:0)

作为绝对最小值,项目B必须引用其自身类型EmailFareMonitorAlertNotifier的继承层次结构中存在的所有程序集,所以我猜答案是否定的。