Exemplo n.º 1
0
        public static IServiceProvider CreateServiceProvider(
            AppSettingsModel settings,
            Action <global::Serilog.LoggerConfiguration> loggerConfigureAction)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var loggerFactory = LoggerConfiguration.CreateLoggerFactory(settings.LogLevel, loggerConfigureAction);

            return(ClientServiceConfiguration.CreateServiceProvider(
                       new IPEndPoint(IPAddress.Loopback, settings.ListenPort),
                       loggerFactory,
                       serviceCollection =>
            {
                switch (settings.Mode)
                {
                case ClientMode.Simple:
                    serviceCollection.AddTransient <IDatagramInterceptor, PassthroughInterceptor>();
                    return;

                case ClientMode.UdpRandomFirstSessionPrefix:
                    if (!(settings.DatagramInterceptorSettings is RandomFirstSessionPrefixInterceptor.Settings
                          interceptorSettings))
                    {
                        interceptorSettings = new RandomFirstSessionPrefixInterceptor.Settings();
                        settings.DatagramInterceptorSettings = interceptorSettings;
                    }

                    serviceCollection.AddSingleton(interceptorSettings);
                    serviceCollection.AddTransient <IDatagramInterceptor, RandomFirstSessionPrefixInterceptor>();
                    return;
Exemplo n.º 2
0
        protected IServiceProvider CreateServiceProvider()
        {
            var loggerFactory = LoggerConfiguration.CreateLoggerFactory(this.Verbosity);

            return(ClientServiceConfiguration.CreateServiceProvider(
                       this.ListenEndPoint,
                       loggerFactory,
                       this.ConfigureServices));
        }