0

Мне нужно создать несколько проектов Asp .Net MVC, и я хочу совместно использовать общие Action Filters (между прочим) между этими проектами, чтобы избежать повторения кода.Поделиться ActionFilter между различными MVC-проектами

Например:

using System.Web.Mvc; 

namespace CoreMVC 
{ 
    public class CustomHandleErrorAttribute : HandleErrorAttribute 
    { 
     public CustomHandleErrorAttribute() { /* ... */ } 

     public override void OnException(ExceptionContext filterContext) { /* ... */ } 
    } 
} 

Решение, которое я думал до сих пор испытывает этот класс (и другие) в проекте библиотеки классов со ссылкой на System.Web.MVC сборки. Таким образом, каждый проект MVC может ссылаться на эту сборку и повторно использовать ее.

Это правильный способ сделать это или есть ли другое лучшее решение?

+1

У вас есть два варианта: решение или ссылка на исходные файлы для общего кода в виде файлов ссылок в ваших проектах MVC. Любой из них будет работать, но ваше решение позволит вам более легко поделиться своим общим кодом с другими проектами MVC. – KiwiPiet

+0

Что вы делаете хорошо. –

ответ

1

Ассемблемы/библиотеки классов - это стандартный способ совместного использования/повторного использования кода в приложениях .NET, так что это один из способов сделать это. Другой способ - использовать NuGet, который также будет содержать сборку с общим кодом. Преимущество NuGet заключается в том, что вы можете добавить некоторые дополнительные материалы вместе с библиотекой классов (например, некоторые сценарии загрузки PowerShell, которые выполняют дополнительные настройки для целевого проекта, в котором вы устанавливаете NuGet). Еще одно большое преимущество NuGet заключается в том, что вы можете иметь в нем несколько платформ и в зависимости от того, какую версию/платформу .NET вы устанавливаете, чтобы получить соответствующую ссылку.

+0

Рассмотрите это как принятый ответ. Мои сомнения из-за ссылки на System.Web/System.Web.MVC в моей общей библиотеке классов –

+0

ASP.NET MVC доступен как NuGet. Таким образом, вы можете настроить свой пользовательский NuGet, чтобы лучше разделить ваши зависимости. Это не проблема, что ваша библиотека классов зависит от ASP.NET MVC - это совершенно нормально, если она содержит фильтры действия ASP.NET MVC. –

 Смежные вопросы

  • Нет связанных вопросов^_^