ASPNET CORE - Могу ли я добавить ControllerModel в IApplicationModelConvention? - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь добавить контроллеры динамически, суть в том, что их действия также динамичны, поэтому я не могу просто использовать универсальный контроллер.1003 * кажется моим лучшим вариантом.Однако контроллер, который я добавляю, никогда не обнаруживается системой маршрутизации.

Это то, что я пробовал:

 public void ConfigureServices(IServiceCollection services)
        {


            services.AddMvc(opts =>
            {
                opts.Conventions.Add(new ApplicationDescription("mdesc"));
                opts.Conventions.Add(new ControllerDescription("mctrl"));
            })
...
        }


public class ApplicationDescription : IApplicationModelConvention
    {
        private readonly string _description;

        public ApplicationDescription(string description)
        {
            _description = description;
        }

        public void Apply(ApplicationModel application)
        {
            var basec = application.Controllers[0];
            var cm = new ControllerModel(typeof(MyController).GetTypeInfo(), basec.Attributes);
            application.Controllers.Add(cm);
            application.Properties["description"] = _description;
        }
    }

Источник: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/application-model?view=aspnetcore-2.0

...