Как передать строку в базовый класс заголовка иерархии - PullRequest
0 голосов
/ 24 мая 2018

я пытаюсь создать пользовательский контроллер, который наследует от класса «Controller», и добавить другие заголовки и методы, чтобы использовать его в качестве контроллера для всех контроллеров в моем проекте.

Это мой код

namespace Filters
{
    [Localization("en")]
    public abstract class CustomController : Controller
    {
        private Entities db = new Entities();
        private Log log;

        protected Log initLog(string aController)
        {
            this.log = new Log(aController, SG.getUser(Session), VG.config_string_connect_log);
            return this.log;
        }

        protected override void OnException(ExceptionContext filterContext)
        {
            Response.StatusCode = 500;
            TempData["MensajeExcepcion"] = filterContext.Exception.Message;
            filterContext.Result = new ViewResult
            {
                ViewName = "Error500",
                TempData = TempData
            };
        }
    }
}

Что я не знаю, как это сделать, когда я наследую от CustomController, как указать, язык для его использования в [Localization ("es")] , например.В данном случае это "en", но могу ли я указать в тот момент, когда я наследую, другую строку?

Я думал, может быть, с универсальным типом, но ... заголовок перед ...:(

открытый класс MyController: CustomController <¿Что-то?> () {}

спасибо:)

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Но это будет просто свойство строки BaseController, как использовать его в определении локализации в заголовке?

* Фильтры пространства имен

{

[Локализация ("en")] <---- ЗДЕСЬ </strong>
открытый абстрактный класс BaseController: Controller

{

0 голосов
/ 24 мая 2018

Попробуйте создать базовый класс контроллеров со свойством, которое вы переопределите в дочерних контроллерах.См. Ниже:

public abstract class BaseController : Controller
{
    public abstract string Localization { get; }
}

public class MyController1 : BaseController
{
    public override string Localization => "en";
}

Этот подход работает для вас?

...