C#.NET Framework 控制台程序中依赖注入IOC简单例子
在asp.net core 中已经自带了一个官方的依赖注入框架,但.NET Framework 控制台程序中是没有集成的,要使用它需要引用一个程序包 Microsoft.Extensions.DependencyInjection
Nuget里面搜索安装即可
这个包+依赖文件1G+的大小还是挺唬人的,不过不用担心生成的程序大小,编译生成后的程序包并不会这么大 可以放心使用
创建接口和实现
public interface IService {
string GetValue();
void SetValue(string text);
}
public class Service : IService
{
string TestStr;
public string GetValue()
{
return this.TestStr;
}
public void SetValue(string text)
{
this.TestStr = text;
}
}
控制台中解耦调用
//实例化IOC容器
var serviceProvider = new ServiceCollection();
//注入上述的接口和实现方法
serviceProvider.AddTransient<IService, Service>();
//解耦获取已注入容器的接口
IService service = serviceProvider.BuildServiceProvider().GetService<IService>();
service.SetValue("我是Ioc测试文本");
string str = service.GetValue();
比Core里多了GetService这一步 其他的用起来都差不多