示例#1
0
        public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
        {
            if (!string.IsNullOrEmpty(segue?.Identifier) && segue.Identifier == SegueIdentidfier)
            {
                if (segue.DestinationViewController is ResponseViewController responseViewController)
                {
                    NetworkProvider provider = null;
                    var             selectedConfiguration = configurations[TableView.IndexPathForSelectedRow.Row];
                    switch (selectedConfiguration.Type)
                    {
                    case RequestType.WebRequestHttp:
                        provider = new DotNetProvider(false);
                        break;

                    case RequestType.WebRequestHttps:
                        provider = new DotNetProvider(true);
                        break;

                    case RequestType.NSUrlConnectionHttp:
                        provider = new CocoaProvider();
                        break;

                    case RequestType.HttpClientHttp:
                        provider = new NetHttpProvider(false);
                        break;

                    case RequestType.HttpClientHttps:
                        provider = new NetHttpProvider(true);
                        break;
                    }

                    responseViewController.Provider = provider;
                }
            }
        }
        private IServiceProvider ConfigureProviderByDependency(IServiceCollection services)
        {
            var provider = Configuration.GetValue <DependencyProvider>("DependencyProvider");

            switch (provider)
            {
            case DependencyProvider.Autofac:
                return(AutofacProvider.Configure(services));

            case DependencyProvider.DotNet:
                return(DotNetProvider.Configure(services));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }