『QQ:1353814576』

C#.NET Framework 控制台程序中依赖注入IOC简单例子


在asp.net core 中已经自带了一个官方的依赖注入框架,但.NET Framework 控制台程序中是没有集成的,要使用它需要引用一个程序包 Microsoft.Extensions.DependencyInjection

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这一步 其他的用起来都差不多