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(); } }