MemExchange.Client.UI.Setup.DependencyInjection.Initialize C# (CSharp) Method

Initialize() public method

public Initialize ( IConfiguration configuration ) : void
configuration IConfiguration
return void
        public void Initialize(IConfiguration configuration)
        {
            Container = new WindsorContainer();
            Container.Register(Component.For<IWindsorContainer>().Instance(Container));
            Container.Register(Component.For<IConfiguration>().Instance(configuration));

            Container.Register(Component.For<IClient>().ImplementedBy<ClientApi.Client>().LifestyleSingleton());
            Container.Register(Component.For<ILogger>().ImplementedBy<SerilogLogger>());
            Container.Register(Component.For<ISerializer>().ImplementedBy<ProtobufSerializer>());
            Container.Register(Component.For<IMessageConnection>().ImplementedBy<MessageConnection>().LifestyleSingleton());
            Container.Register(Component.For<IServerMessageSubscriber>().ImplementedBy<ServerMessageSubscriber>().LifestyleSingleton());
        }

Usage Example

        private void StartApplication(IConfiguration configuration)
        {
            UiDispatcher.Init(Dispatcher);
            Configuration = configuration;

            var dependencyInjection = new DependencyInjection();
            dependencyInjection.Initialize(configuration);

            DependencyInjection.Container.Resolve<IClient>().Start(configuration.ClientId, configuration.ServerAddress, configuration.ServerCommandPort, configuration.ServerPublishPort);

            var window = new MainWindow();
            var viewModel = new MainWindowViewModel();

            window.DataContext = viewModel;
            window.Show();
        }
All Usage Examples Of MemExchange.Client.UI.Setup.DependencyInjection::Initialize
DependencyInjection