示例#1
0
        public static IHostBuilder SetupHost()
        {
            return(new HostBuilder()
                   .ConfigureServices((hostContext, services) =>
            {
                // Add Ringleader with our contextual factory and handler factory
                services.AddRingleader()
                .WithContextualClientFactory <MyHttpClientFactory, MyHttpClient, string>()
                .WithPrimaryHandlerFactory <TestingPrimaryHandlerFactory>()
                .Build();

                // Configure a sample repository of certificates that our primary handler factory can use
                var myCertificateProvider = new MyCertificateProvider();
                myCertificateProvider.SetCertificate(new X509Certificate2("./DummyCertificates/dummy_cert1.pem"), DUMMY_1);
                myCertificateProvider.SetCertificate(new X509Certificate2("./DummyCertificates/dummy_cert2.pem"), DUMMY_2);
                services.AddSingleton <MyCertificateProvider>(myCertificateProvider);

                // Add our testing evaluation singleton to monitor handler construction and execution of the delegating handler pipeline
                services.AddSingleton <TestingEvaluationData>();

                // Add our dummy HttpClient and attach a delegating handler that can log execution for testing
                services.AddTransient <TestingDelegatingHandler>();
                services.AddHttpClient <MyHttpClient>()
                .AddHttpMessageHandler <TestingDelegatingHandler>();
            }));
        }
示例#2
0
 public TestingPrimaryHandlerFactory(MyCertificateProvider myCertificateProvider, TestingEvaluationData primaryHandlerReference)
 {
     _myCertificateProvider   = myCertificateProvider ?? throw new ArgumentNullException(nameof(myCertificateProvider));
     _primaryHandlerReference = primaryHandlerReference ?? throw new ArgumentNullException(nameof(TestingEvaluationData));
 }