輕量級IOC框架:Ninject
依賴注入 Ioc看似很高深的東西,但是用Ninject實現起來特別簡單
第一步 去http://www.ninject.org/download.html下載你所需要的版本
或者在建立專案後,直接在檢視--其他視窗---Package Manager Console裡輸入Install-Package Ninject -Project 你專案的名稱
第二步 建立一個控制檯專案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ninject.Modules;
using Ninject;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Warrior warrior = new Warrior(new Sword());
Warrior warrior1 = new Warrior(new Knife());
warrior.kill("狼");
warrior1.kill("兔子");
Console.WriteLine("*******下面採用Ninject方式*******");
using (IKernel kernel = new StandardKernel(new MyModule1()))
{
Warrior w = kernel.Get<Warrior>();
w.kill("熊");
}
using(IKernel kernel=new StandardKernel(new MyModule2()))
{
Warrior w = kernel.Get<Warrior>();
w.kill("老虎");
}
Console.ReadKey();
}
}
public interface Iweapon
{
void Attack(string target);
}
public class Sword : Iweapon
{
public void Attack(string target)
{
Console.WriteLine("武士用刀砍殺{0}", target);
}
}
public class Knife : Iweapon
{
public void Attack(string target)
{
Console.WriteLine("武士用匕首割斷了{0}的脖子", target);
}
}
public class Warrior
{
public Iweapon _iweapon
{ get; private set; }
[Inject]
public Warrior(Iweapon weapon)
{
_iweapon = weapon;
}
public void kill(string target)
{
_iweapon.Attack(target);
}
}
public class MyModule1 : NinjectModule
{
public override void Load()
{
this.Bind<Iweapon>().To<Sword>();
}
}
public class MyModule2 : NinjectModule
{
public override void Load()
{
this.Bind<Iweapon>().To<Knife>();
}
}
}
相關文章
- Flutter路由輕量級框架FRouterFlutter路由框架
- 輕量級orm框架——gzero指南ORM框架
- 輕量級Web框架Flask(二)Web框架Flask
- looter——超輕量級爬蟲框架爬蟲框架
- 輕量級 Web 框架 Gin 結構分析Web框架
- 輕量級DI框架Guice使用詳解框架GUI
- azeroth-event輕量級事件驅動框架事件框架
- 「造個輪子」——cicada(輕量級 WEB 框架)Web框架
- CherryPy :一個輕量級的 Python Web 框架PythonWeb框架
- Spring 5| 輕量級的開源JavaEE框架SpringJava框架
- 輕量級多級選單控制框架程式(C語言)框架C語言
- CQRS輕量級框架【CQRSlite】學習使用小記框架
- python輕量級orm框架 peewee常用功能速查PythonORM框架
- SpringBoot接入輕量級分散式日誌框架(GrayLog)Spring Boot分散式框架
- 仿Laravel寫了一個輕量級的框架Laravel框架
- ThinkGo:一個輕量級的 Go 語言 MVC 框架GoMVC框架
- Javalin2.4.0釋出,Kotlin/Java輕量級Web框架JavaKotlinWeb框架
- 一個輕量級,0配置orm框架 sharkchili-feifeiORM框架
- [iOS] [OC] 輕量級的表單框架 GSForm(附demo)iOS框架ORM
- Solon 1.6.25 釋出,輕量級應用開發框架框架
- Solon 1.6.18 釋出,輕量級應用開發框架框架
- Fastflow——基於golang的輕量級工作流框架ASTGolang框架
- 新一代輕量級PHP擴充套件框架 AsfPHP套件框架
- Nancy .Net 輕量級mvc框架使用(5)Routing路由方式整理NaNMVC框架路由
- Go Web輕量級框架Gin學習系列:路由分組GoWeb框架路由
- C# 輕量級 ORM 框架 NPoco 的簡單應用C#ORM框架
- 開源輕量級 IM 框架 MobileIMSDK v6.1.2 釋出!框架
- 不想寫sql?試試這款輕量級JAVA ORM框架!SQLJavaORM框架
- 輕量級超級 css 工具CSS
- JXPopupView:一個輕量級的自定義檢視彈出框架View框架
- 輕量級ORM框架——第一篇:Dapper快速學習ORM框架APP
- Go Web輕量級框架Gin學習系列:安裝與使用GoWeb框架
- Oracle釋出開源的輕量級 Java 微服務框架 HelidonOracleJava微服務框架
- Github上最受歡迎的Python輕量級框架Flask入門GithubPython框架Flask
- Go Web輕量級框架Gin學習系列:資料繫結GoWeb框架
- 搭建基於springboot輕量級讀寫分離開發框架Spring Boot框架
- Python:輕量級 ORM 框架 peewee 用法詳解之——增刪改查PythonORM框架
- Go Web輕量級框架Gin學習系列:HTTP請求日誌GoWeb框架HTTP
- Python:輕量級 ORM 框架 peewee 用法詳解(二)——增刪改查PythonORM框架