微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。