![](/img/trans.png)
[英]Adding dll reference to visual studio c# project visible on github
[英]C# Visual studio needs reference to base class dll
为什么会出现这个问题?
背景: myClass
继承自ABC
类,而ABC
类继承自BaseClass
。 BaseClass
是在不同名称空间中的自定义创建的类,并且包含在不同的DLL程序集中。
问题: VisualStudio希望我添加对BaseClass
DLL的引用-否则它将无法编译myClass
。
谢谢
如果您不提供基类的元数据,它将如何获取? 它不会从基类复制到派生类,也不会存储在派生类的程序集中。
您的供应商方案只是不现实的。 没有人会设计一百个类的类层次结构,更不用说将它们存储在单独的程序集中了。 在最坏的情况下,最高达到六到七个。 使用一个基座组件,有时两个。 任何更深层次的人都无法理解它是如何工作的。
关于您的vendor
方案-如果该供应商的库未公开任何其他库中的任何库,并且所有这些库仅在内部使用,则不会被迫引用该供应商库中的所有库。
但是,例如,如果一个库从另一个库(或它的继承者)返回一个类,那么您当然必须引用两者。 只是为了获取有关那些公开类的所有信息。
如果未引用BaseClass,您的程序将如何知道它及其定义? 如果没有引用元数据,应该从哪里获取?
这就像在Web服务器端上询问有关SO的问题,但不告诉任何人您正在使用哪种语言/平台-没有参考框架。
让我们回答您的问题...
为了编译MyClass的代码,它需要知道Class做了什么。 为了知道Class做了什么,它需要查看BaseClass做了什么-就像一条链。
您需要在项目中包括要构建的所有内容。 这可以通过在项目中实际拥有任何项目的源代码,或通过包含对定义了行为的项目/二进制文件的引用来完成。
元数据不包含有关类中实际逻辑的任何详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.