Beispiel #1
0
 private static void Shutdown(object sender, ConsoleCancelEventArgs ccea)
 {
     Console.WriteLine("Exiting...");
     try{
         c.Stop(false);
         u.Close();
         stopEvent.Set();
     }
     catch {}
 }
        public MainWindow()
        {
            InitializeComponent();
            
            txtUserName.Text = "User" + new Random().Next(10000);
            cbChatRooms.ItemsSource = _rooms;

            var builder = new ContainerBuilder();

            //register core messages
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(EmptyMessage)))
                .Where(x => x.IsAssignableTo<Message>() && x != typeof(Message))
                .As<Message>();

            //register domain messages
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin)))
                .Where(x => x.IsAssignableTo<Message>() && x != typeof(Message))
                .As<Message>();

            //register domain service definitions and proxies
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin)))
                .Where(x => x.IsAssignableTo<NetProxy>() && x != typeof(NetProxy))
                .As<NetProxy>();

            builder.RegisterType<OperationDispatcher>().As<IOperationDispatcher>().SingleInstance();
            builder.RegisterType<MessageFactory>().As<IMessageFactory>().SingleInstance();
            //builder.Register(c => new PhotonNetClient("MouseChat")).As<INetProvider>().SingleInstance();
            var netConf = new NetPeerConfiguration("ChatApp")
            {
                ConnectionTimeout = 10000,
            };

            builder.Register(x => new LidgrenNetProvider(netConf)).As<INetProvider>().SingleInstance();
            builder.RegisterType<ClientNode>().As<IClientNode>();
            var container = builder.Build();
            
            _node = container.Resolve<IClientNode>();
            //start node thread and init network
            _node.Start();

            btnJoin.IsEnabled = false;
            Closing += (sender, e) => _node.Stop();

        }
        public MainWindow()
        {
            InitializeComponent();

            txtUserName.Text        = "User" + new Random().Next(10000);
            cbChatRooms.ItemsSource = _rooms;

            var builder = new ContainerBuilder();

            //register core messages
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(EmptyMessage)))
            .Where(x => x.IsAssignableTo <Message>() && x != typeof(Message))
            .As <Message>();

            //register domain messages
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin)))
            .Where(x => x.IsAssignableTo <Message>() && x != typeof(Message))
            .As <Message>();

            //register domain service definitions and proxies
            builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin)))
            .Where(x => x.IsAssignableTo <NetProxy>() && x != typeof(NetProxy))
            .As <NetProxy>();

            builder.RegisterType <OperationDispatcher>().As <IOperationDispatcher>().SingleInstance();
            builder.RegisterType <MessageFactory>().As <IMessageFactory>().SingleInstance();
            //builder.Register(c => new PhotonNetClient("MouseChat")).As<INetProvider>().SingleInstance();
            var netConf = new NetPeerConfiguration("ChatApp")
            {
                ConnectionTimeout = 10000,
            };

            builder.Register(x => new LidgrenNetProvider(netConf)).As <INetProvider>().SingleInstance();
            builder.RegisterType <ClientNode>().As <IClientNode>();
            var container = builder.Build();

            _node = container.Resolve <IClientNode>();
            //start node thread and init network
            _node.Start();

            btnJoin.IsEnabled = false;
            Closing          += (sender, e) => _node.Stop();
        }