在不同的MVC项目之间共享ActionFilter

本文关键字:之间 共享 ActionFilter 项目 MVC | 更新日期: 2023-09-27 18:20:51

我必须创建多个Asp.Net MVC项目,并且我希望在这些项目之间共享通用的操作过滤器(以及其他内容),以避免重复代码。

例如:

using System.Web.Mvc;
namespace CoreMVC
{
    public class CustomHandleErrorAttribute : HandleErrorAttribute
    {
        public CustomHandleErrorAttribute() { /* ... */ }
        public override void OnException(ExceptionContext filterContext) { /* ... */ }
    }
}

到目前为止,我想到的解决方案是在类库项目中包含这个类(以及其他类),并引用System.Web.MVC程序集。这样,每个MVC项目都可以引用这个程序集并重用它

这是正确的方法吗?或者还有其他更好的解决方案吗?

在不同的MVC项目之间共享ActionFilter

程序集/类库是在.NET应用程序中共享/重用代码的标准方法,因此这是一种方法。另一种方法是使用NuGet,它也将包含具有共享代码的程序集。NuGet的优点是,您可以在类库中包含一些额外的东西(例如一些引导Powershell脚本,这些脚本对安装NuGet的目标项目执行额外的自定义)。NuGet的另一个巨大优势是,您可以在其中有多个平台,并且根据您正在安装的版本/.NET平台,可以引用正确的程序集。