Как расширить класс контроллера с помощью моих пользовательских методов - PullRequest
0 голосов
/ 09 октября 2018

Я хочу легко получить свои методы из расширенного класса контроллеров и добавить некоторый метод в класс Controller для использования во всех других контроллерах, например так:

Extension

public string GetString()
{
    return "iamanexample";
}

AuthenticationController

public class AuthenticationController : Controller
{
   public IActionResult Index()
   {
       string getMyStr = GetString();
       return View();
   }
}

Нужно ли создавать собственный класс, который наследуется классом Controller и добавляет в него мои методы, а затем использует мой собственный класс контроллера?Или есть другое решение, чтобы сделать это?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы можете перейти к наследованию или создать метод расширения Controller, я предпочитаю последнюю версию.

Чтобы создать метод расширения, вы можете создать статический класс и создать статический метод в этом классе..

public static class ControllerExtensions
{
     public static string GetString(this Controller controller)
     {
          return "iamanexample";
     } 
}

Затем вы можете легко получить к нему доступ через любой контроллер, написав

string exampleString = this.GetString();
0 голосов
/ 09 октября 2018

Да, это идеальный сценарий для наследования.Создайте новый базовый класс контроллера:

public abstract class ControllerBase : Controller 
{
    public string GetString()
    {
        return "iamanexample";
    }
}

Наследуйте как:

public class AuthenticationController : ControllerBase
{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...