//static void Main(string[] args) //{ // var logger = new ConsoleLogger(); // var sqlConnectionFactory = new SqlConnectionFactory("SQL Connection", logger); // var createUserHandler = new CreateUserHandler(new UserService(new QueryExecutor(sqlConnectionFactory), // new CommandExecutor(sqlConnectionFactory), // new CacheService(logger, // new RestClient("API KEY"))), logger); // createUserHandler.Handle(); // Console.ReadKey(); //} //static void Main(string[] args) //{ // IKernel kernel = new StandardKernel(); // kernel.Bind<CreateUserHandler>().To<CreateUserHandler>(); // kernel.Bind<IConnectionFactory>() // .ToConstructor(k => new SqlConnectionFactory("SQL Connection", k.Inject<ILogger>())) // .InSingletonScope(); // kernel.Bind<ILogger>().To<ConsoleLogger>() // .InSingletonScope(); // kernel.Bind<QueryExecutor>().To<QueryExecutor>(); // kernel.Bind<CommandExecutor>().To<CommandExecutor>(); // kernel.Bind<RestClient>() // .ToConstructor(k => new RestClient("API KEY")); // kernel.Bind<CacheService>().To<CacheService>(); // var createUserHandler = kernel.Get<CreateUserHandler>(); // createUserHandler.Handle(); // Console.ReadKey(); //} static void Main(string[] args) { //IKernel kernel = new StandardKernel(); //kernel.Bind<CreateUserHandler>().To<CreateUserHandler>(); //kernel.Bind<IConnectionFactory>() // .ToConstructor(k => new SqlConnectionFactory("SQL Connection", k.Inject<ILogger>())) // .InSingletonScope(); //kernel.Bind<ILogger>().To<ConsoleLogger>() // .InSingletonScope(); //kernel.Bind<QueryExecutor>().To<QueryExecutor>(); //kernel.Bind<CommandExecutor>().To<CommandExecutor>(); //kernel.Bind<RestClient>() // .ToConstructor(k => new RestClient("API KEY")); //kernel.Bind<CacheService>().To<CacheService>(); var myKernel = new MyKernel(); myKernel.Bind <CreateUserHandler, CreateUserHandler>(); myKernel.Bind <UserService, UserService>(); myKernel.BindToConstructor <IConnectionFactory>(() => new SqlConnectionFactory("SQL Connection", myKernel.Get <ILogger>())); myKernel.Bind <ILogger, ConsoleLogger>(); myKernel.Bind <QueryExecutor, QueryExecutor>(); myKernel.Bind <CommandExecutor, CommandExecutor>(); myKernel.BindToConstructor <RestClient>(() => new RestClient("API KEY")); myKernel.Bind <CacheService, CacheService>(); var createUserHandler = myKernel.Get <CreateUserHandler>(); createUserHandler.Handle(); Console.ReadKey(); }
//static void Main(string[] args) //{ // var logger = new ConsoleLogger(); // var sqlConnectionFactory = new SqlConnectionFactory("SQL Connection", logger); // var createUserHandler = new CreateUserHandler(new UserService(new QueryExecutor(sqlConnectionFactory), new CommandExecutor(sqlConnectionFactory), new CacheService(logger, new RestClient("API KEY"))), logger); // createUserHandler.Handle(); // Console.ReadKey(); //} //static void Main(string[] args) //{ // IKernel kernel = new StandardKernel(); // kernel.Bind<ILogger>().To<ConsoleLogger>().InSingletonScope(); // kernel.Bind<IConnectionFactory>() // .ToConstructor(k => new SqlConnectionFactory("SQL Connection", k.Inject<ILogger>())) // .InSingletonScope(); // kernel.Bind<UserService>().To<UserService>(); // kernel.Bind<QueryExecutor>().To<QueryExecutor>(); // kernel.Bind<CommandExecutor>().To<CommandExecutor>(); // kernel.Bind<CacheService>().To<CacheService>(); // kernel.Bind<RestClient>().ToConstructor(k => new RestClient("API KEY")); // kernel.Bind<CreateUserHandler>().To<CreateUserHandler>(); // var createUserHandler = kernel.Get<CreateUserHandler>(); // createUserHandler.Handle(); // Console.ReadKey(); //} static void Main(string[] args) { var kernel = new MyKernel(); kernel.Bind <ILogger, ConsoleLogger>(new ConsoleLogger()); kernel.Bind <IConnectionFactory, SqlConnectionFactory>((SqlConnectionFactory)kernel.ToConstructor <SqlConnectionFactory>( new List <object>() { "SQL Connection", kernel.Inject <ILogger>() })); kernel.Bind <UserService, UserService>(); kernel.Bind <QueryExecutor, QueryExecutor>(); kernel.Bind <CommandExecutor, CommandExecutor>(); kernel.Bind <CacheService, CacheService>(); kernel.Bind <RestClient, RestClient>((RestClient)kernel.ToConstructor <RestClient>(new List <object>() { "API KEY" })); kernel.Bind <CreateUserHandler, CreateUserHandler>(); var createUserHandler = kernel.Get <CreateUserHandler>(); createUserHandler.Handle(); Console.ReadKey(); }
static void Main_2(string[] args) { var kernel = new MyKernel(); kernel.Register <CreateUserHandler, CreateUserHandler>(); kernel.Register <UserService, UserService>(); kernel.Register <ILogger, ConsoleLogger>(); kernel.Register <QueryExecutor, QueryExecutor>(); kernel.Register <CommandExecutor, CommandExecutor>(); kernel.Register <CacheService, CacheService>(new CacheService(kernel.Get <ILogger>(), new RestClient("API KEY"))); kernel.Register <IConnectionFactory, SqlConnectionFactory>(new SqlConnectionFactory("SQL Connection", kernel.Get <ILogger>())); var createUserHandler = kernel.Get <CreateUserHandler>(); createUserHandler.Handle(); }