В WebApi вы можете заменить встроенный IHttpControllerTypeResolver
, в котором вы можете найти нужные вам контроллеры Api любым удобным для вас способом.
В AspNetCore с MVC есть запутанная путаница PartsManager и FeatureManager, и где-то есть что-то, что связано с контроллерами. Кажется, что вся документация и обсуждения, которые я смог найти, предполагают, что вы разработчик, работающий над MVC, и что вы уже понимаете разницу между ApplicationPartManager и ControllerFeatureProvider, ничего не объясняя.
Что я хотел бы сделать в простейшем примере, так это запустить экземпляр сервера AspNetCore 2.0 Kestrel и разрешить ему разрешать только предварительно сконфигурированный жестко закодированный отдельный контроллер. Я явно не хочу, чтобы это делалось, это нормальное открытие и все такое.
В WebApi вы только что сделали это:
public class SingleControllerTypeResolver : IHttpControllerTypeResolver
{
readonly Type m_type;
public SingleControllerTypeResolver(Type type) => m_type = type;
public ICollection<Type> GetControllerTypes(IAssembliesResolver assembliesResolver) => new[] { m_type };
}
// ...
// in the configuration:
config.Services.Replace(typeof(IHttpControllerTypeResolver), new SingleControllerTypeResolver(typeof(MySpecialController)))
Однако я застрял, пытаясь получить эквивалент, используя aspnetcore 2