Ninject入門サンプル
一、ログ出力インターフェースを宣言する
- public interface ILogger
- {
- void Write(string message);
- }
- public class FlatFileLogger : ILogger
- {
- public void Write(string message)
- {
- Console.WriteLine(String.Format("Message:{0}", message));
- Console.WriteLine("Target:FlatFile");
- }
- }
- public class DatabaseLogger : ILogger
- {
- public void Write(string message)
- {
- Console.WriteLine(String.Format("Message:{0}", message));
- Console.WriteLine("Target:Database");
- }
- }
- internal class MyModule : Ninject.Modules.NinjectModule
- {
- public override void Load()
- {
- Bind<ILogger>().To<FlatFileLogger>();
- Bind<ILogger>().To<DatabaseLogger>();
- }
- }
- private static IKernel kernel = new StandardKernel(new MyModule());
- static void Main(string[] args)
- {
- ILogger logger = kernel.Get<ILogger>();
- logger.Write("Bruce Say: Hello Ninject!");
- Console.WriteLine("continues..");
- Console.Read();
- }
コンストラクターインジェクション
一、テストクラスを定義する
- interface ITester
- {
- void Test();
- }
- class IocTester:ITester
- {
- private ILogger _logger;
- public IocTester(ILogger logger)
- {
- _logger = logger;
- }
- public void Test()
- {
- _logger.Write("Bruce Say: Hello Ninject!");
- }
- }
- internal class MyModule : Ninject.Modules.NinjectModule
- {
- public override void Load()
- {
- Bind<ILogger>().To<FlatFileLogger>();
- Bind<ITester>().To<IocTester>();
- }
- }
- private static IKernel kernel = new StandardKernel(new MyModule());
- static void Main(string[] args)
- {
- ITester tester = kernel.Get<ITester>();
- tester.Test();
- Console.WriteLine("continues..");
- Console.Read();
- }
0 件のコメント:
コメントを投稿