[英]Inherit a class with same namespace and same class name
我設法在2個類中完成它,但是我在3中失敗了。假設我有一個程序集A.DLL,它有namespace =“City”和class =“NY”
(我將在我的問題中將此課程稱為“A”)
在我的新項目中我的命名空間=“城市”,我有一個class =“NY”(我將在我的問題中將此類稱為“B”)
所以要實現B:A(B繼承/擴展自A)我創建了一個參考文獻A.DLL和“B”類參考“extern alias oldDll”
namespace City
{
extern alias oldDll;
public class NY : oldDll::City.NY
{
public NY() : base()
{
}
}
}
這很好用! :)
問題是當我嘗試在另一個程序集中使用新的assebmly(B.DLL /“B”類)而只引用B.DLL時(我將在我的問題中將此類稱為“C”)並創建一個“City.NY”的新內容我得到一個例外,我認為這是因為“A.DLL”沒有加載。
如何從B加載它(如果這是問題)? 我沒有訪問“C.EXE”或C代碼(他只是從B.DLL創建City.NY)。 *注意:我不能重新編譯C.我只能運行它。
所以我有一個類“C”,它創建一個繼承自“A”的類“B”
我想到manualy在“B”代碼中加載“A.DLL”程序集,但首先發生的是base()構造函數..:\\
謝謝你的幫助
糾正我的任何人,因為我不是100%肯定,但通常你必須引用兩個程序集才能使它工作(這是一些包有依賴關系的方式,也必須在項目中下載和引用)。
我認為它不會編譯也不會丟失程序集。
發生的第一件事實際上不是基本構造函數,而是類型構造函數。 您可以使用以下內容指定:
static B()
{
}
請注意,類型構造函數不允許訪問修飾符。 但無論哪種方式,我想基礎類型甚至在此之前就被加載了,所以你在這里沒有機會。
配置文件也無濟於事。 他們可以重定向現有的引用(參見https://msdn.microsoft.com/en-us/library/7wd6ex19%28v=vs.110%29.aspx ),但我不認為他們可以添加不存在的引用之前。
你不能。
簡單地說 - 讓City.NY
中的B.dll
繼承自City.NY
中的A.dll
是一個重大改變,需要重新編譯依賴於B.dll
的程序集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.