/// <summary> /// Registers a new connection provider /// </summary> /// <param name="entry">The provider entry.</param> /// <param name="method">The factory method.</param> public static void RegisterProvider(ConnectionProviderEntry entry, ConnectionFactoryMethod method) { string name = entry.Name.ToUpper(); if (_ctors.ContainsKey(name)) { throw new ArgumentException(string.Format(Strings.ErrorProviderAlreadyRegistered, entry.Name)); } _ctors[name] = method; _providers.Add(entry); }
/// <summary> /// Creates an initialized <see cref="IServerConnection"/> object given the provider name and the initalization parameters /// </summary> /// <param name="provider"></param> /// <param name="connInitParams"></param> /// <returns></returns> public static IServerConnection CreateConnection(string provider, NameValueCollection connInitParams) { string name = provider.ToUpper(); if (!_ctors.ContainsKey(name)) { throw new ArgumentException(string.Format(Strings.ErrorProviderNotRegistered, provider)); } ConnectionProviderEntry prv = FindProvider(provider); if (prv != null && !prv.IsMultiPlatform && Platform.IsRunningOnMono) { throw new NotSupportedException(string.Format(Strings.ErrorProviderNotUsableForYourPlatform, provider)); } var method = _ctors[name]; IServerConnection result = method(connInitParams); _callCount[name]++; return(result); }
/// <summary> /// Registers a new connection provider /// </summary> /// <param name="entry">The provider entry.</param> /// <param name="method">The factory method.</param> public static void RegisterProvider(ConnectionProviderEntry entry, ConnectionFactoryMethod method) { string name = entry.Name.ToUpper(); if (_ctors.ContainsKey(name)) throw new ArgumentException(string.Format(Strings.ErrorProviderAlreadyRegistered, entry.Name)); _ctors[name] = method; _providers.Add(entry); }