示例#1
0
        public MainWindowViewModel()
        {
            LogEntries = new ObservableCollection <LogEntry>();

            var ioc    = SpindelvevBootstrapper.Wire();
            var logger = ioc.Resolve <ISpindelvevLogger>();

            logger.LoggedMessage += LoggerLoggedMessage;

            var trafficListener = ioc.Resolve <ITrafficListener>();

            var fiddlerConnection = ioc.Resolve <IListenerConnection>();

            fiddlerConnection.Port = 30000;

            var filter = new ListenerFilter
            {
                Hostnames = new List <string> {
                    Environment.MachineName, "localhost"
                },
                Routes = new List <string> {
                    "dbank"
                }
            };

            var trafficHandler = ioc.Resolve <ITrafficHandler>();

            trafficListener.StartListening(fiddlerConnection, filter, trafficHandler);
        }
示例#2
0
        static void Main(string[] args)
        {
            const string serviceName = "Spindelvev";

            var ioc = SpindelvevBootstrapper.Wire();

            var appConfig = ioc.Resolve <IAppConfiguration>();
            var logger    = ioc.Resolve <ISpindelvevLogger>();

            HostFactory.Run(hostConfig =>
            {
                hostConfig.Service <ITrafficListener>(serviceConfig =>
                {
                    serviceConfig.ConstructUsing(() => ioc.Resolve <ITrafficListener>());

                    serviceConfig.WhenStarted((service, hostControl) =>
                    {
                        var fiddlerConnection  = ioc.Resolve <IListenerConnection>();
                        fiddlerConnection.Port = 30000;

                        var filter = new ListenerFilter
                        {
                            Hostnames = appConfig.HostnameFilters,
                            Routes    = appConfig.RouteFilters,
                            Verbs     = appConfig.VerbFilters
                        };

                        var trafficHandler = ioc.Resolve <ITrafficHandler>();

                        service.StartListening(fiddlerConnection, filter, trafficHandler);
                        return(true);
                    });

                    serviceConfig.WhenStopped(service =>
                    {
                        var fiddlerConnection = ioc.Resolve <IListenerConnection>();
                        service.StopListening(fiddlerConnection);
                        ioc.Dispose();
                    });

                    serviceConfig.BeforeStartingService(() => logger.Info("Starting {0}", serviceName));
                    serviceConfig.AfterStartingService(() => logger.Info("Started {0}", serviceName));
                    serviceConfig.BeforeStoppingService(() => logger.Info("Stopping {0}", serviceName));
                    serviceConfig.AfterStoppingService(() => logger.Info("Stopped {0}", serviceName));
                });

                hostConfig.RunAsLocalSystem();
                hostConfig.SetDisplayName(serviceName);
                hostConfig.SetServiceName(serviceName);
                hostConfig.SetDisplayName(serviceName);
                hostConfig.StartAutomatically();
            });
        }