예제 #1
0
 /// <summary>
 /// Cria um provider.
 /// </summary>
 /// <param name="name">Nome do provider.</param>
 /// <param name="connectionString"></param>
 /// <returns>Instancia do provider.</returns>
 public static IProviderConfiguration CreateProviderConfiguration(string name, string connectionString)
 {
     if (_providersConfigurationConstructors.ContainsKey(name))
     {
         if (string.IsNullOrEmpty(connectionString))
         {
             throw new GDAException("ConnectionString is null");
         }
         ConstructorInfo ci = _providersConfigurationConstructors[name] as ConstructorInfo;
         try
         {
             IProviderConfiguration instance = (IProviderConfiguration)ci.Invoke(new object[] {
                 connectionString
             });
             if (GDAOperations.GlobalProviderConfigurationLoad != null)
             {
                 GDAOperations.GlobalProviderConfigurationLoad(instance, new ProviderConfigurationLoadArgs(instance));
             }
             return(instance);
         }
         catch (TargetInvocationException ex)
         {
             throw ex.InnerException;
         }
     }
     else
     {
         throw new GDAException(String.Format("Info about name {0} not found.", name));
     }
 }
예제 #2
0
 /// <summary>
 /// Obtem o <see cref="IProviderConfiguration"/> com base no nome.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public static IProviderConfiguration GetProviderConfiguration(string name)
 {
     LoadConfiguration();
     if (!_providerConfiguration.ContainsKey(name))
     {
         IProviderConfiguration instance = null;
         if (!_providersConfigurationInfo.ContainsKey(name))
         {
             throw new GDAException("ProviderConfiguration {0} not found.", name);
         }
         ProviderConfigurationInfo pci = (ProviderConfigurationInfo)_providersConfigurationInfo[name];
         if (pci.ProviderName == null)
         {
             throw new GDAException("Not found provider name in ProviderConfiguration {0}", name);
         }
         if (_providersConfigurationConstructors.ContainsKey(pci.ProviderName))
         {
             if (pci.ConnectionString == null || pci.ConnectionString == "")
             {
                 throw new GDAException("ConnectionString is null");
             }
             ConstructorInfo ci = _providersConfigurationConstructors[pci.ProviderName] as ConstructorInfo;
             try
             {
                 instance = (IProviderConfiguration)ci.Invoke(new object[] {
                     pci.ConnectionString
                 });
                 instance.Dialect             = pci.Dialect;
                 _providerConfiguration[name] = instance;
             }
             catch (TargetInvocationException ex)
             {
                 throw ex.InnerException;
             }
         }
         else
         {
             throw new GDAException(String.Format("Info about name {0} not found.", name));
         }
         if (GDAOperations.GlobalProviderConfigurationLoad != null)
         {
             GDAOperations.GlobalProviderConfigurationLoad(instance, new ProviderConfigurationLoadArgs(instance));
         }
     }
     return(_providerConfiguration[name] as IProviderConfiguration);
 }