继承子类型

时间:2016-03-22 18:58:50

标签: c# inheritance

好的,这可能是一个简单的问题,但是自从我完成它以来已经很久了。

我有一个包含类的库(libA)。我想创建一个从libA继承和扩展类的新库(libB):

public class c1:libA.c1(){}

libA.c1中的一个方法返回另一个在libA中定义的类:

public c2 m1(){}

完成所有操作后,我想在将来的代码中使用libB,而没有为libA定义任何引用。但是,我似乎无法做到这一点,因为我必须在某处定义c2并简单地继承:

public c2:libAc2(){}

似乎没有这样做。

任何人都可以给我任何关于如何通过libB公开c2和“隐藏”libA到任何引用libB的程序的指针吗?

1 个答案:

答案 0 :(得分:1)

如果您有这样的参考链......

Application - libB - libA

然后,您需要包含对libA的引用,否则它将无法构建您的应用程序。毕竟,libA是libB的依赖项。您将需要它来运行您的应用程序。

您可以在运行时进行一些奇特的类加载,手动加载程序集,但这不允许您根据它们编写代码,因此。所以,它在这里对你没有多大用处。 https://msdn.microsoft.com/en-us/library/system.reflection.assembly.loadfile%28v=vs.110%29.aspx

我最好的建议是将libA中的代码重构为libB,前提是您拥有libA的源代码。然后将要隐藏的程序组从程序集外部标记为内部。

https://msdn.microsoft.com/en-us/library/7c5ka91b.aspx