예제 #1
0
 public PixivClientService(IProxySetting proxySetting, PixivSetting pixivSetting)
 {
     _subscribeDisposable = proxySetting.Proxy
                            .CombineLatest(pixivSetting.ConnectionMode,
                                           (proxy, mode) => mode switch
     {
         PixivConnectionMode.SystemProxy
         => new HttpClientHandler
         {
             UseProxy = true,
             Proxy    = HttpClient.DefaultProxy
         },
         PixivConnectionMode.ApplicationProxy
         => new HttpClientHandler
         {
             UseProxy = true,
             Proxy    = proxy
         },
         PixivConnectionMode.NoProxy
         => new HttpClientHandler
         {
             UseProxy = false
         },
         PixivConnectionMode.DirectConnect
         => (HttpMessageHandler) new DirectConnectHandler(),
         _ => throw new InvalidOperationException($"Unknown enum value {mode}.")
     })
예제 #2
0
        public ProxyHostedService(ILogger <ProxyHostedService> logger, IOptions <MySetting> options, IUserInput input, IProxySetting proxySetting, MainApp mainApp, TrojanContext trojanContext)
        {
            _logger       = logger;
            _proxySetting = proxySetting;

            _trojanContext = trojanContext;
            _setting       = options.Value ?? throw  new Exception("ConfigError");
            _action        = mainApp.Run;
        }
예제 #3
0
 public ConsoleUserInput(IProxySetting proxySetting, IOptions <MySetting> options)
 {
     _proxySetting = proxySetting;
     _options      = options.Value;
 }
예제 #4
0
 public MainApp(IOptions <MySetting> options, IProxySetting proxySetting, TrojanContext trojanContext)
 {
     _proxySetting  = proxySetting;
     _trojanContext = trojanContext;
     _options       = options.Value;
 }