从基类继承时参考规则

6
鉴于项目A是一个C#类库,而项目B是一个控制台应用程序,它依赖于项目A。
在项目A中定义了以下类:
public class ActionMailNotifier : RazorMailerBase
{
        private readonly string _viewPath;
        private readonly EmailHost _emailConfig;
                   ...
                   ...
}

“RazorMailBase”包含在外部dll文件ActionMailer.dll中,该文件被项目A引用。
在项目B中定义了以下类:
public class EmailFareMonitorAlertNotifier : ActionMailNotifier
{
                        ...
                        ...
}

如果在项目B中没有引用ActionMailer.dll,编译器会生成一个错误消息,指示需要引用ActionMailer.dll。是否有一种结构可以使得在项目B中不需要引用外部dll?

不确定问题。您是在问是否有一种方法可以在没有引用的情况下使用另一个程序集中的代码吗? - David Hope
3个回答

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

0

不行。如果你删除了 Project B 中所有引用 ActionMailer.dll 的类型的引用,你将不会看到任何错误。但是由于 RazorMailBase 是在 ActionMailer.dll 中定义的,因此你必须有该引用才能使用 ActionMailNotifier 或任何其他从外部库中的类派生的类型。


0

作为绝对最低限度,项目B将不得不引用其类型EmailFareMonitorAlertNotifier的继承层次结构中存在的所有程序集,所以我的猜测是不行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接