在ASP.NET MVC控制器之间共享代码

Jam*_*xon 8 c# asp.net-mvc

我在这里有几个控制器,包含我可以在其他控制器中使用的方法.

我考虑将一些常用功能移出到基本控制器,然后这些功能可以继承.这个问题是我在多个基本控件中需要的方法,我无法访问.(因为我们不能从多个基本控制器继承).

我的另一个想法是将常用功能移出到Controller文件夹之外的各自的类中.

你会怎么做?在ASP.NET MVC中有一种很好的方式来共享这样的代码,我还不知道吗?

Mar*_*ann 14

关于面向对象编程有一个经验法则,你应该支持组合而不是继承,它非常适合这种情况.

我将创建一个或多个封装有问题的方法的服务,然后从控制器中使用这些服务.

对于额外的点,从相关服务中提取接口,并将接口注入控制器以实现最大的关注点分离.