是否可以覆盖dll文件中的类中的方法?

我在我的Windows窗体项目中包含了一个dll文件。 1.是否可以完全覆盖特定的类? 2.是否可以在dll文件中为特定类添加新方法? 3.是否可以覆盖dll中类中的方法?

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

我想要实现的目标:我现在必须创建一个项目并将其作为dll文件添加到更大的项目中。 但是我们被告知我们下个月需要为原始项目添加更多function。 我正试图找出解决这个问题的最佳方法。 较小的项目基于mvc设计。

您当然可以覆盖从类库中的类inheritance的方法。 您可以在覆盖object.ToString()时执行此操作!

你不能“完全覆盖一个class级” – 我不知道那甚至意味着什么。 同样,您无法向现有类添加方法,但您可以:

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

如果你能告诉我们你想要达到的目标,那么建议你如何继续下去会更容易。

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

我想要实现的目标:我现在必须创建一个项目并将其作为dll文件添加到更大的项目中。 但是我们被告知我们下个月需要为原始项目添加更多function。 我正试图找出解决这个问题的最佳方法。 较小的项目基于mvc设计。

当前的最佳实践是对这些事物使用控制反转(例如ninject ),如果你有一个所有依赖关系的中心位置,你可以在运行时连接它们,根据你的意愿拦截碎片。