Xamarin Forms 中的多目标和使用 Microsoft.Extensions.Logging

问题描述

我最近将我的库从未指定的项目更改为多目标。我有 Netstandard、android 和 iOS 课程。每个都包含这个。然后一旦平台成为目标,就会调用相关代码

public  partial class PlatformProvider
{
    static IServiceProvider PlatformServiceProvider => new Service();
}

我也有共享课

  public partial class ServiceProvider
  {
      public static IServiceProvider Instance => PlatformServiceProvider;
  }

问题是我有工作日志,但是在此转换后日志不再有效。

日志记录是我在每个平台中使用的界面的一部分

public interface IServiceProvider
{
    Task<bool> Init();
    ILoggerFactory LoggerFactory { get; set; }
}
    
public class Service : IServiceProvider
{
    private bool _isInitialized;
    private ILogger<RecognitionService> _logger;
    private ILoggerFactory _loggerFactory = NullLoggerFactory.Instance;
    public ILoggerFactory LoggerFactory
    {
         get => _loggerFactory;
         set
         {
          _loggerFactory = value;
          _logger = _loggerFactory.CreateLogger<Service>();
         }
        }
        public Service()
        {       
         _logger = LoggerFactory.CreateLogger<Service>();
        }

然后像这样使用

public async Task<bool> Init()
{
    if (_isInitialized) return _isInitialized;
    _isInitialized = await InitService();
    switch (_isInitialized)
    {
         case (false):
              _logger.LogDebug("Error during initialization");
                 break;
          case (true):
              _logger.LogDebug("Initialization ok ");
               break;
     }
            
   return _isInitialized;
}

但是没有日志出来,我 100 确定它以前可以工作,请您提供建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)