我必须创建多个Asp .Net MVC项目,并且我想在这些项目之间共享常见的Action Filters(以及其他内容),以避免重复代码。
例如:
using System.Web.Mvc;
namespace CoreMVC
{
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public CustomHandleErrorAttribute() { /* ... */ }
public override void OnException(ExceptionContext filterContext) { /* ... */ }
}
}
我到目前为止所考虑的解决方案是将这个类(和其他类)放在类库项目中,并引用System.Web.MVC 程序集。这样,每个MVC项目都可以引用此程序集并重用它。
这是正确的方法吗?还是有其他更好的解决方案?
答案 0 :(得分:1)
程序集/类库是在.NET应用程序中共享/重用代码的标准方法,因此这是实现它的一种方法。另一种方法是使用NuGet,它也将包含具有共享代码的程序集。 NuGet的优点是您可以在类库中包含一些其他内容(例如一些引导Powershell脚本,这些脚本对安装NuGet的目标项目执行其他自定义)。 NuGet的另一个巨大优势是,您可以在其中安装多个平台,具体取决于您安装的版本/ .NET平台,以便引用正确的程序集。