是否有可能重写一个类的方法在一个DLL文件?(Is it possible to override

2019-09-22 05:11发布

我已经包含了dll文件到我的窗户形式的项目。 1.是否有可能完全覆盖一个特定的类? 2.是否有可能一个新的方法添加到一个特定的类中的DLL文件? 3.是否有可能覆盖在DLL中的一个类的方法?

替代我宁愿避免:我知道我可以使用扩展方法来创建静态的新方法。 我也可以从一个特定的类继承,然后添加新的方法来派生类。

我想要实现:我现在必须创建一个项目,并将其添加到一个更大的项目作为一个DLL文件。 但我们被告知,我们需要更多的功能,下月添加到原来的项目。 我试图找出去了解这一点的最好办法。 较小的项目是基于MVC设计。

Answer 1:

你当然可以重写你是从一个类在类库继承方法。 你该做的任何时候你重写object.ToString()例如!

你不能“覆盖一类完全”虽然 - 我不知道是什么,即使是意味着什么。 同样,你也不能,虽然可以将方法添加到现有的类:

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

如果你能告诉我们你想达到什么样的,它会更容易建议您如何继续。

编辑:当你需要更多的功能添加到原来的项目,只需将其添加到原始项目。 是否有任何理由,你将无法再更改该项目?



Answer 2:

我想要实现:我现在必须创建一个项目,并将其添加到一个更大的项目作为一个DLL文件。 但我们被告知,我们需要更多的功能,下月添加到原来的项目。 我试图找出去了解这一点的最好办法。 较小的项目是基于MVC设计。

目前最好的做法是使用控制反转(如ninject )对这类事情,如果你有一个集中的地方为你的依赖,你可以将它们连接起来,只要你喜欢在运行时,拦截星星点点如你所愿。



文章来源: Is it possible to override a method in a class in a dll file?
标签: c# oop