예제 #1
0
        public void AddPerCallPolicyViaClient()
        {
            var options     = new ArmClientOptions();
            var dummyPolicy = new DummyPolicy();

            options.AddPolicy(dummyPolicy, HttpPipelinePosition.PerCall);
            var client = new ArmClient(Guid.NewGuid().ToString(), new MockCredential(), options);

            var pipelineProperty = client.GetType().GetProperty("Pipeline", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty);
            var pipeline         = pipelineProperty.GetValue(client) as HttpPipeline;

            var perCallPolicyField = pipeline.GetType().GetField("_pipeline", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField);
            var policies           = (ReadOnlyMemory <HttpPipelinePolicy>)perCallPolicyField.GetValue(pipeline);

            Assert.IsNotNull(policies.ToArray().FirstOrDefault(p => p.GetType() == typeof(DummyPolicy)));
        }
예제 #2
0
        private static HttpPipeline GetPipelineFromClient(ArmClient client)
        {
            var pipelineProperty = client.GetType().GetProperty("Pipeline", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty);

            return(pipelineProperty.GetValue(client) as HttpPipeline);
        }