#xamarin.forms #prism #ilogger
#xamarin.forms #prism #илоггер
Вопрос:
У меня есть приложение xamarin.forms, использующее Prism. Однако мне нужно добавить несколько microsoft.extensions.регистрация илоггеров в нем. В стандартной настройке microsoft.extensions.dependencyinjection для ведения журнала я обычно выполняю
serviceCollection.AddLogging(builder =>
{
builder.AddDebug();
builder.AddConsole();
builder.AddApplicationInsights(someKey);
});
Как бы я это сделал с помощью Prism? Смогу ли я по-прежнему получать типизированный илоггер? например
public ThingieService(ILogger<ThingieService> logger)
Ответ №1:
Есть классный маленький плагин, Prism.Microsoft.DependencyInjection.Extensions
который я считаю полезным для этого.
В вашем RegisterTypes
методе вы можете регистрировать службы, используя Microsoft.Extensions.DependencyInjection
версию IServiceCollection
. Вы можете добавить поддержку Microsoft.Extensions.Logging
ILogger
здесь . Например:
public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterServices(s =>
{
s.AddLogging(logging =>
{
logging.AddSimpleConsole();
});
});
}
}
Это также работает для других IServiceCollection
расширений, таких как AddHttpClient()
или ConfigureOptions()
.
Комментарии:
1. с какой версией prism он работает?
2. Это работает с Prism. Unity v8.0.0.1909 и Prism. Майкрософт. DependencyInjection. Расширения версии 8.0.62. Я не вижу никаких причин, по которым это не будет работать с формами Xamarin.