общий код для всех методов в классе контроллера - PullRequest
0 голосов
/ 22 января 2019

У меня есть 10 контроллеров, которые используют один и тот же блок кода, но я не могу понять, как написать код один раз и использовать его везде.

Мне нужно определить объект с именем:

requiredStructuralSupportParameters

, затем установите 3 поля в объекте.

Это один из методов контроллера, который его использует:

public class StructureController : Controller
{   
    public IActionResult Index()
    {

        var requiredStructuralSupportParameters = new Structure.RequiredInfo()
        {
            Steel = "1500y",
            Concrete = "5500l",
            Rebar = "95000y"
        };

        var response = callToAPI(requiredStructuralSupportParameters);

        return response.Results;
    }
}

Я попытался вынуть этот код и поместить его в верхнюю часть класса контроллера и сделать его общедоступным, но тогда мои контроллеры не могут его увидеть, и я получаю ошибки nullreferenceexception.

Так что он работает только тогда, когда я ставлюэто прямо в методах контроллера.

Есть ли способ сделать это так, чтобы все контроллеры могли повторно использовать один и тот же блок кода?

1 Ответ

0 голосов
/ 22 января 2019
public class StructureController : Controller
{   
    protected YourType _requiredStructuralSupportParameters;

    public StructureController()
    {
        this._requiredStructuralSupportParameters = new Structure.RequiredInfo()
        {
            Steel = "1500y",
            Concrete = "5500l",
            Rebar = "95000y"
        };
    }
}

тогда другие контроллеры наследуют ваши StructureController:

public SomeController : StructureController{

   public IActionResult Index() {
      var response = callToAPI(this._requiredStructuralSupportParameters);

      return response.Results;
   }
}

еще не проверял, но я надеюсь, что у вас есть идея

...