- seo流水线的操作与其规模化的应用
- System.IO.File.Exists
- 微信小程序排名规则及搜索算法
- php中global的用法
- 如何判断高质量外部链接
- 浅析网站如何留住回头客
- datatable.select(string) 含义
- 不显示删除回复显示所有回复显示星级回复显示得分回复 asp.net中的状态管理sessionState Mode="StateServer" 和 Mode="InProc"的区别?
- 提升营销效果应首先走出网站标题写作误区
- 数据库设计常用词汇表
邮箱:
手机:15383239821
IOC容器使用示例
一、Unity
1. 创建一个IService服务接口,并创建一个服务实现了Service
public interface IService
{
void DoSomething();
}
public class Service : IService
{
public void DoSomething()
{
Console.WriteLine("Service is doing something.");
}
}
2. 创建一个控制器类,且依赖于IService
public class Controller
{
private readonly IService _service;
public Controller(IService service)
{
_service = service;
}
public void DoWork()
{
_service.DoSomething();
}
}
3.使用 Unity 容器进行依赖注入,将 IService 实例注入到 Controller 中
using System;
using Unity;
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
// 注册服务接口和实现类
container.RegisterType<IService, Service>();
// 解析控制器实例
var controller = container.Resolve<Controller>();
// 使用控制器
controller.DoWork();
Console.ReadLine();
}
}
二、AutoFac
1. 安装AutoFac类库,在NuGet搜索下载安装即可

2. 创建一个IService服务接口,并创建一个服务实现了Service
public interface IMyService
{
void DoSomething();
}
public class MyServiceImpl : IMyService
{
public void DoSomething()
{
Console.WriteLine("Doing something...");
}
}
3. 创建Autofac容器,并将IMyService接口和MyServiceImpl实现类进行注册
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<MyServiceImpl>().As<IMyService>();
var container = builder.Build();
using (var scope = container.BeginLifetimeScope())
{
var service = scope.Resolve<IMyService>();
service.DoSomething();
}
}
}
三、Ninject
1. 安装Ninject类库,在NuGet搜索下载安装即可

2. 创建一个IService服务接口,并创建一个服务实现了Service
public interface IMyService
{
void DoSomething();
}
public class MyServiceImpl : IMyService
{
public void DoSomething()
{
Console.WriteLine("Doing something!");
}
}
3. 创建一个Ninject内核并注册我们的服务
using Ninject;
class Program
{
static void Main(string[] args)
{
// create a new Ninject kernel
var kernel = new StandardKernel();
// register our service
kernel.Bind<IMyService>().To<MyServiceImpl>();
// get an instance of our service
var service = kernel.Get<IMyService>();
// use our service
service.DoSomething();
Console.ReadLine();
}
}
- 上一篇:常用的IOC容器
- 下一篇:C# 13(.Net 9) 中的新特性 - 半自动属性
-
2018-11-08微信开发
-
2020-08-02微信小程序js中展示JSON对象长度,以及遍历json的键或值
-
2013-05-27在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
-
2010-12-09什么是软文,软文该怎么写?
-
2019-11-25dtcms类库说明
-
2010-08-10关于asp.net Session丢失问题的总结
