【发布时间】:2011-04-06 19:48:15
【问题描述】:
我有一个基础控制器,它是标准 mvc 控制器的子类。这包含了许多特定于控制器的有用方法。
我现在需要在我的一个新控制器中添加一些异步功能
但是,要做到这一点,您需要创建一个子类 AsyncController 的控制器
但我也想访问我的基本控制器中的功能
显然多重继承是不可能的
那么我该如何解决这个问题?
【问题讨论】:
标签: asp.net asp.net-mvc-3 asynchronous subclass oop
我有一个基础控制器,它是标准 mvc 控制器的子类。这包含了许多特定于控制器的有用方法。
我现在需要在我的一个新控制器中添加一些异步功能
但是,要做到这一点,您需要创建一个子类 AsyncController 的控制器
但我也想访问我的基本控制器中的功能
显然多重继承是不可能的
那么我该如何解决这个问题?
【问题讨论】:
标签: asp.net asp.net-mvc-3 asynchronous subclass oop
您可以将您愿意重用的功能外部化到服务层、操作过滤器、授权过滤器、模型绑定器……这取决于您愿意重用的功能,以便您可以轻松切换基本控制器到异步控制器并仍然保留功能。如果你想使用异步控制器,你需要从 AsyncController 派生。
【讨论】:
你可以让你的控制器类继承IAsyncManagerContainer和IAsyncController,然后自己实现这个功能,也许使用MVC源代码中的代码。您甚至可以将其封装在您将功能委托给它自己的类中。
【讨论】: