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