我在我的Windows窗体项目中包含了一个dll文件。 1.是否可以完全覆盖特定的类? 2.是否可以在dll文件中为特定类添加新方法? 3.是否可以覆盖dll中类中的方法?
替代方案我宁愿避免: 我知道我可以使用扩展方法来创建静态新方法。 我也可以继承特定的类,然后向派生类添加新方法。
我想要实现的目标: 我现在必须创建一个项目,并将其作为dll文件添加到更大的项目中。 但是我们被告知我们下个月需要为原始项目添加更多功能。我正试图找出解决这个问题的最佳方法。 较小的项目基于mvc设计。
答案 0 :(得分:2)
您当然可以覆盖从类库中继承的虚拟方法。您可以在覆盖object.ToString()
时执行此操作,例如!
你不能“完全覆盖一个班级” - 我不知道这甚至意味着什么。同样,您无法向现有类添加方法,但您可以:
如果你能告诉我们你想要达到的目标,建议你如何继续下去会更容易。
编辑:当您需要为原始项目添加更多功能时,只需将其添加到原始项目即可。你有什么理由不能在以后改变这个项目吗?
答案 1 :(得分:0)
我想要实现的目标:我必须这样做 现在创建一个项目并将其添加到 较大的项目作为DLL文件。但 我们被告知我们需要添加 原始功能更多 项目下个月。我试着 找出最好的方法 这个。较小的项目是基于 mvc design。
目前的最佳做法是对这些事情使用控制反转(例如ninject),如果你有所有依赖关系的中心位置,你可以在运行时加入它们,拦截它们你想要的点点滴滴。