依赖注入的优点
(1)有效地设计服务及其依赖关系。
(2)防止多线程问题。
(3)防止内存泄漏。
(4)防止潜在的错误。
工程代码下载
.Netor.NetCore依赖注入实现-C#文档类资源-CSDN下载
一、新建控制台项目
新建StartUp类,代码如下,如果你们没有用到Logger删掉Logger相关内容即可
using FileLogger;
namespace UnityDataManageServiceHost
{
class StartUp
{
public static void Main(string[] args)
{
//setup our DI
var serviceProvider = new ServiceCollection()
.AddSingleton<ILogger, Log4netLogger>()
.BuildServiceProvider();
//configure console logging
serviceProvider
.GetService<ILogger>().Initialize("UnityDataManageServiceHost");
serviceProvider
.GetService<ILogger>().LogLevel = LoggingEventType.Debug;
//save log
var _logger = serviceProvider.GetService<ILogger>();
_logger.Debug(typeof(StartUp), "Starting application");
//全部异常捕获,优雅退出
try
{
}
catch (Exception ex)
{
_logger.Debug(typeof(StartUp), "Main Exception" + " Exception=" + ex);
}
_logger.Debug(typeof(StartUp), "Stop application");
System.Diagnostics.Process.GetCurrentProcess().Kill();
}
//入口函数
public static void Start(ServiceProvider serviceProvider)
{
var logger = serviceProvider.GetService<ILogger>();
}
}
}
安装依赖Microsoft.Extensions.DependencyInjection,或使用nuget进行安装
选择合适的版本进行安装
二、运行测试
|