輕量級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
- 超輕量級PHP框架BroPHPPHP框架
- PhalApi(π框架) - PHP輕量級開源介面框架API框架PHP
- looter——超輕量級爬蟲框架爬蟲框架
- Fd.Service 輕量級WebApi框架WebAPI框架
- 如何編寫輕量級 CSS 框架CSS框架
- 輕量級 Web 框架 Gin 結構分析Web框架
- 輕量級DI框架Guice使用詳解框架GUI
- 輕量級Android快取框架ASimpleCacheAndroid快取框架
- azeroth-event輕量級事件驅動框架事件框架
- 輕量級多級選單控制框架程式(C語言)框架C語言
- Spring 5| 輕量級的開源JavaEE框架SpringJava框架
- 「造個輪子」——cicada(輕量級 WEB 框架)Web框架
- 仿Laravel寫了一個輕量級的框架Laravel框架
- CQRS輕量級框架【CQRSlite】學習使用小記框架
- 輕量級框架 Gin 釋出 v1.1 版本框架
- 一個輕量級的引數校驗框架框架
- .NET輕量級RPC框架:Rabbit.RpcRPC框架
- 輕量級CSS佈局排版框架:EZ-CSSCSS框架
- 一個輕量級WebFramework開發框架介紹WebFramework框架
- 58同城開源其輕量級Web框架ArgoWeb框架Go
- CherryPy :一個輕量級的 Python Web 框架PythonWeb框架
- 一個輕量級,0配置orm框架 sharkchili-feifeiORM框架
- ThinkGo:一個輕量級的 Go 語言 MVC 框架GoMVC框架
- python輕量級orm框架 peewee常用功能速查PythonORM框架
- [iOS] [OC] 輕量級的表單框架 GSForm(附demo)iOS框架ORM
- Fastflow——基於golang的輕量級工作流框架ASTGolang框架
- Solon 1.6.25 釋出,輕量級應用開發框架框架
- 輕量級AJAX框架buffalo 2.0釋出 效能大幅提升框架
- 輕量級超級 css 工具CSS
- Go Web輕量級框架Gin學習系列:路由分組GoWeb框架路由
- Solon 1.6.18 釋出,輕量級應用開發框架框架
- 開源輕量級 IM 框架 MobileIMSDK v6.1.2 釋出!框架
- 不想寫sql?試試這款輕量級JAVA ORM框架!SQLJavaORM框架
- 新一代輕量級PHP擴充套件框架 AsfPHP套件框架
- Android 認識EventBus輕量級事件匯流排框架Android事件框架