代码之家  ›  专栏  ›  技术社区  ›  Dror Helper

如何从程序集中继承类,而不强制用户引用两个程序集

  •  2
  • Dror Helper  · 技术社区  · 17 年前

    我有两个不同的A班和B班。NET程序集:程序集A和程序集B。

    我希望类B继承类A,但我希望使用类B只需要引用AssemblyB(而不是同时引用AssemblyA和AssemblyB)。

    由于项目限制,我需要将两个程序集分开,因此无法使用合并工具合并这两个程序集中。

    请注意,类的实际继承不是必须的——我希望能够让a的逻辑作为类B的一部分在AssemblyB中运行,同时尽可能少地重写功能。

    有办法做到这一点吗?

    1 回复  |  直到 17 年前
        1
  •  9
  •   orip    17 年前

    不。这样想吧——假设你输入了以下内容:

    public class B : A
    {
          public void Foo()
          {
                this.// Cursor is here
          }
    }
    

    如果Intellisense不知道A类中的内容,你如何期望它知道可用的内容?编译器如何验证方法调用等?

    了解继承链上的父类。这意味着引用这两个项目。如果你不想这样做,不要使用继承——让B组成A,而不是从它派生。用户在执行时仍然需要A的二进制文件,但我不需要 认为 他们需要在Visual Studio中添加一个引用。(另一方面,如果他们要调试代码,他们可能无论如何都想确保二进制文件在正确的位置……)

    推荐文章