代码之家  ›  专栏  ›  技术社区  ›  see_sharp_guy

是否可以重写dll文件中类中的方法?

  •  1
  • see_sharp_guy  · 技术社区  · 17 年前

    我的Windows窗体项目中包含了一个dll文件。 1。是否可以完全重写特定的类? 2。是否可以向dll文件中的特定类添加新方法? 三。是否可以重写dll中的类中的方法?

    我希望避免的备选方案: 我知道我可以使用扩展方法来创建静态的新方法。 我还可以从特定的类继承,然后向派生类添加新方法。

    我想达到的目标是: 我现在必须创建一个项目,并将其作为一个dll文件添加到一个较大的项目中。 但有人告诉我们,下个月我们需要为原始项目添加更多功能。我正在想办法解决这个问题。 较小的项目基于MVC设计。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jon Skeet    17 年前

    您当然可以重写 事实上的 从类库中的类继承的方法。任何时候你都要这样做 object.ToString() 比如说!

    不过,您不能“完全重写类”——我甚至不知道这意味着什么。同样,尽管您可以:

    • 使用扩展方法“假装”添加另一个方法(但没有状态,也没有属性)
    • 从类派生(假定它不是密封的)并声明自己的额外方法

    如果你能告诉我们你正在努力实现的目标,就可以更容易地告诉你如何继续下去。

    编辑:当需要向原始项目添加更多功能时,只需将其添加到原始项目。你有什么理由以后不能改变那个项目吗?

        2
  •  0
  •   Sam Saffron James Allen    17 年前

    我要达到的目标:我必须 立即创建项目并将其添加到 将较大的项目作为dll文件。但是 我们被告知我们需要补充 原版的更多功能 下个月计划。我正在努力 找出最好的方法 这个。较小的项目基于 MVC设计。

    目前的最佳实践是使用控制反转(例如 ninject )对于这类事情,如果您有一个中心位置来处理所有依赖项,那么您可以在运行时根据自己的喜好将它们连接起来,并根据自己的意愿截取片段。