使用动态继承C#

使用动态继承C#,c#,inheritance,C#,Inheritance,在我的项目中,我使用.CSHTML页面和.aspx页面。。所以我有两个抽象类 public abstract class RazorAbstractPage : System.Web.WebPages.WebPage public abstract class AbstractPage : System.Web.UI.Page 两者都使用相同的代码。。所以页面中有重复的代码。。。是否有任何方法可以基于Razor System.Web.WebPages.WebPages和其他System.Web

在我的项目中,我使用.CSHTML页面和.aspx页面。。所以我有两个抽象类

public abstract class RazorAbstractPage : System.Web.WebPages.WebPage
public abstract class AbstractPage : System.Web.UI.Page
两者都使用相同的代码。。所以页面中有重复的代码。。。是否有任何方法可以基于Razor System.Web.WebPages.WebPages和其他System.Web.WebPages.WebPages之类的条件继承

你的建议将很有价值

不,C#是一种静态类型语言。所有继承都必须提前完成。有“动态”,但据我所知,它不允许以这种方式声明类型


我实现这一点的方法是围绕System.Web.WebPages.WebPages和System.Web.UI.Page制作一个包装器,这些包装器有一个公共接口,并将代码放在第三个类中,该类在构造函数中获取具有此接口的对象。也就是说,如果它们是相同的,为什么不拆下其中一个并用另一个替换呢?为什么还要为这个条件继承而烦恼呢?不,你不能这么做。如果您有共享代码,请考虑将其重构为一个自己的类,并将其注入到派生类中。父类型是非常不同的,因此拥有相同的代码并不意味着这两者之间存在任何继承关系。为什么不坚持使用cshtml或aspx,然后你只有其中一种来处理继承,这意味着存在一种
is-a
关系。这不是一个好的代码重用机制。