在asp.net core 中已经自带了一个官方的依赖注入框架,但.NET Framework 控制台程序中是没有集成的,要使用它需要引用一个程序包 Microsoft.Extensions.DependencyInjection Nuget里面搜索安装即可
平常使用.net Core开发用习惯了程序突然换回 .NET Framework还是挺别扭的,所以去查了下在控制台程序中依赖注入IOC的例子,顺带记下来。
Nuget引用 Microsoft.Extensions.DependencyInjection
这个包+依赖文件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这一步 其他的用起来都差不多