Я использую Glimpse.Mvc5 (1.5.3) в проекте MVC5 и создаю пользовательскую вкладку. Для этой вкладки требуется информация, которая будет регистрироваться внутри другого проекта.
Этот проект не является MVC, и на него ссылается мой проект MVC.
Мне удалось получить MessageBroker
двумя способами, но я не думаю, что ни один из них не идеален:
GetConfiguredMessageBroker
IMessageBroker broker = GlimpseConfiguration.GetConfiguredMessageBroker();
Я впервые попробовал это с успехом, но метод помечен как устаревший, так что ничего страшного
Автор: GlimpseRuntime
GlimpseRuntime glimpseRuntime = HttpContext.Current.Application.Get("__GlimpseRuntime") as GlimpseRuntime;
IMessageBroker broker = glimpseRuntime.Configuration.MessageBroker;
Затем я попробовал это, тоже с успехом, но меня беспокоили две вещи: мне пришлось добавить ссылку на System.Web (для HttpContext
), что действительно неуместно в моем проекте.
Использование "__GlimpseRuntime"
похоже на то, что могло бы перерыв в будущих выпусках.
Я также понимаю, что это нарушает абстракцию (веб-инструмент появляется в моем другом проекте), поэтому, если лучший ответ не использует MessageBroker
вообще, меня это устраивает.