簡體   English   中英

從基類繼承時的引用規則

[英]Rules for references when inheriting from base class

鑒於項目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?

EmailFareMonitorAlertNotifier只要EmailFareMonitorAlertNotifier最終從程序集external.dll派生,您需要引用它,以便編譯器和運行時具有使用該類型所需的信息。

不。如果您要刪除項目B中引用ActionMailer.dll的任何類型的所有引用,您將看不到任何錯誤。 但由於RazorMailBase是在ActionMailer.dll中定義的,因此您必須具有使用ActionMailNotifier引用,或者從外部庫中的類派生的任何其他類型。

作為絕對最小值,項目B將必須引用其自己類型的EmailFareMonitorAlertNotifier的繼承層次結構中存在的所有程序集,所以我猜答案是否定的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM