У меня очень простой класс, который я добавил в метод GetConnectionString()
. После добавления его всякий раз, когда любое значение получает доступ из класса «Настройки», оно генерирует исключение The type initializer for 'NameSpace.Settings' threw an exception.
Как только я удалю программу GetConnectionString(), все будет хорошо.Инициализатор типа для 'NameSpace.Settings' выбрал исключение
using System.Data.EntityClient;
using System.Data.SqlClient;
namespace CRM {
static class Settings {
public static bool userAuthenticated = false;
public static string userGroup = "";
public static Klienci currentlySelectedClient;
public static string sqlDataConnectionDetailsCRM = GetConnectionString();
public static string GetConnectionString() {
string connection = "";
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.InitialCatalog = dbInitialCatalog;
sqlBuilder.DataSource = dbServer;
sqlBuilder.IntegratedSecurity = false;
sqlBuilder.UserID = dbUserName;
sqlBuilder.Password = dbPasswWord;
sqlBuilder.MultipleActiveResultSets = true;
EntityConnectionStringBuilder entity = new EntityConnectionStringBuilder();
entity.Metadata = @"res://*/Data.System.csdl|res://*/Data.System.ssdl|res://*/Data.System.msl";
entity.Provider = "System.Data.SqlClient";
entity.ProviderConnectionString = sqlBuilder.ToString();
connection = entity.ToString();
return connection;
}
}
}
Если я закомментировать sqlBuilder и сущность. Он отлично работает.
public static string GetConnectionString() {
string connection = "";
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
//sqlBuilder.InitialCatalog = dbInitialCatalog;
//sqlBuilder.DataSource = dbServer;
//sqlBuilder.IntegratedSecurity = false;
//sqlBuilder.UserID = dbUserName;
//sqlBuilder.Password = dbPasswWord;
//sqlBuilder.MultipleActiveResultSets = true;
EntityConnectionStringBuilder entity = new EntityConnectionStringBuilder();
//entity.Metadata = @"res://*/Data.System.csdl|res://*/Data.System.ssdl|res://*/Data.System.msl";
//entity.Provider = "System.Data.SqlClient";
//entity.ProviderConnectionString = sqlBuilder.ToString();
connection = entity.ToString();
return connection;
}
Что происходит? Кажется, хорошо для меня ..
Edit:
InnerException:
исключение = «System.ArgumentNullException: Значение не может быть нуль \ г \ nParameter. Имя: Initial Catalog \ г \ п на System.Data.SqlClient.SqlConnectionStringBuilder.set_InitialCatalog (String значение) \ г \ п на CRM.Settings.GetConnectionString() в C: \ Проекты \ Project.CS ..
Пока public static string dbInitialCatalog = "BazaCRM";
настроен в классе настроек.
Есть ли какие-либо полезные данные в InnerException? – ZombieSheep
Добавлено внутреннее исключение в вопросе – MadBoy