Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }