У меня есть архитектура с несколькими веб-сокетами, в которой мои хабы поддерживают мою службу отдыха.Событие выбрасывается из моих грубых методов.Мои сервисы регистрируются динамически, мой запуск выглядит примерно так:
var messageHubConfig = new DynamicHubServicConfiguration<Message, MessageDTO>();
//Registers service with a hub
restConfiguration.RegisterRestService(typeof(IMessageDTOService),
typeof(MessageDTOService),
messageHubConfig);
Я хотел бы зарегистрировать общие маршруты хабов одновременно, когда я регистрирую свои сервисы на основе используемого общего параметра.В настоящее время я вручную регистрирую маршруты следующим образом:
app.UseSignalR(routes =>
{
routes.MapHub<CRUDServiceHubBase<MessageDTO>>("/messages");
});
Я хотел бы зарегистрировать соглашения для своих динамически зарегистрированных концентраторов, единственный способ, которым я могу придумать, как это сделать в настоящее время, будет
//this is pseudo coded
public void RegisterServiceHubConvention(IServicesProvder services, IApplicationBuilder app)
{
//Get all the services
var crudServices = services.GetServices(typeof(CRUDServiceHubBase<>))
var serviceMap = MapGenericParameterToHubType(crudServices);
var hubMapAction = BuildHubRoutesActionFromParameterTypeName(serviceMap);
hubMapAction(app);
}
Почему сигнализатор не настроен с использованием сервисов?
Я бы предпочел не создавать своего поставщика услуг в AppServices или вручную писать соглашения таким образом.Существует ли более удобный подход для создания маршрутов-концентраторов?