我设法在2节课中解决了问题,但在3节课中没有通过。
假设我有一个程序集A.DLL,其名称空间=“ City”和一个类=“ NY”
(我将在我的问题中将此班称为“ A”)
在我的新项目中,我的名称空间是=“ City”,并且我有一个类=“ NY”(我将在我的问题中将此类称为“ B”)
因此要实现B:A(B从A继承/扩展)
我创建了对引用A.DLL的支持
并在“ B”类中引用“外部别名oldDll”
namespace City
{
extern alias oldDll;
public class NY : oldDll::City.NY
{
public NY() : base()
{
}
}
}
这样很好! :)
问题是,当我尝试在另一个仅具有对B.DLL引用的程序集中使用新的assebmly(B.DLL /“ B”类)(我将在我的问题中将此类称为“ C”)并创建一个“ City.NY”的新实例
我得到一个例外,我认为这是因为“ A.DLL”没有加载。
我如何从B加载它(如果这是问题)?我没有访问“ C.EXE”或C代码的权限(他只是从B.DLL创建City.NY)。
*注意:我无法重新编译C。我只能运行它。
所以我有一个类“ C”,它创建了一个继承自“ A”的类“ B”
我想到手动加载“ B”代码中的“ A.DLL”程序集,但是首先发生的是base()构造函数。
感谢您的帮助
最佳答案
纠正我的任何人,因为我不确定100%,但是通常您必须引用这两个程序集才能使其正常工作(这意味着某些程序包具有依赖项,也必须在项目中下载和引用)。
我认为如果没有缺少汇编程序,它也不会编译。