Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DbProviderFactories.cs
Go to the documentation of this file.
5using System.Linq;
7
8namespace System.Data.Common;
9
10public static class DbProviderFactories
11{
25
27
28 public static bool TryGetFactory(string providerInvariantName, [NotNullWhen(true)] out DbProviderFactory? factory)
29 {
31 return factory != null;
32 }
33
38
39 [RequiresUnreferencedCode("Provider type and its members might be trimmed if not referenced directly.")]
41 {
42 ADP.CheckArgumentNull(providerRow, "providerRow");
43 DataColumn dataColumn = providerRow.Table.Columns["AssemblyQualifiedName"];
44 if (dataColumn == null)
45 {
47 }
49 if (string.IsNullOrWhiteSpace(text))
50 {
52 }
54 }
55
56 public static DbProviderFactory? GetFactory(DbConnection connection)
57 {
58 ADP.CheckArgumentNull(connection, "connection");
59 return connection.ProviderFactory;
60 }
61
63 {
64 DataColumn dataColumn = new DataColumn("Name", typeof(string))
65 {
66 ReadOnly = true
67 };
68 DataColumn dataColumn2 = new DataColumn("Description", typeof(string))
69 {
70 ReadOnly = true
71 };
72 DataColumn dataColumn3 = new DataColumn("InvariantName", typeof(string))
73 {
74 ReadOnly = true
75 };
76 DataColumn dataColumn4 = new DataColumn("AssemblyQualifiedName", typeof(string))
77 {
78 ReadOnly = true
79 };
80 DataTable dataTable = new DataTable("DbProviderFactories")
81 {
82 Locale = CultureInfo.InvariantCulture
83 };
85 dataTable.PrimaryKey = new DataColumn[1] { dataColumn3 };
87 {
88 DataRow dataRow = dataTable.NewRow();
89 dataRow["InvariantName"] = registeredFactory.Key;
90 dataRow["AssemblyQualifiedName"] = registeredFactory.Value.FactoryTypeAssemblyQualifiedName;
91 dataRow["Name"] = string.Empty;
92 dataRow["Description"] = string.Empty;
93 dataTable.AddRow(dataRow);
94 }
95 return dataTable;
96 }
97
99 {
100 return _registeredFactories.Keys.ToList();
101 }
102
109
114
115 public static void RegisterFactory(string providerInvariantName, DbProviderFactory factory)
116 {
117 ADP.CheckArgumentLength(providerInvariantName, "providerInvariantName");
118 ADP.CheckArgumentNull(factory, "factory");
119 string assemblyQualifiedName = factory.GetType().AssemblyQualifiedName;
121 }
122
123 public static bool UnregisterFactory(string providerInvariantName)
124 {
126 if (!string.IsNullOrWhiteSpace(providerInvariantName))
127 {
129 }
130 return false;
131 }
132
134 {
135 if (throwOnError)
136 {
137 ADP.CheckArgumentLength(providerInvariantName, "providerInvariantName");
138 }
139 else if (string.IsNullOrWhiteSpace(providerInvariantName))
140 {
141 return null;
142 }
144 {
145 if (!throwOnError)
146 {
147 return null;
148 }
150 }
151 DbProviderFactory factoryInstance = value.FactoryInstance;
152 if (factoryInstance == null)
153 {
154 factoryInstance = GetFactoryInstance(GetProviderTypeFromTypeName(value.FactoryTypeAssemblyQualifiedName));
156 }
157 return factoryInstance;
158 }
159
161 {
162 ADP.CheckArgumentNull(providerFactoryClass, "providerFactoryClass");
164 {
166 }
167 FieldInfo field = providerFactoryClass.GetField("Instance", BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.Public);
168 if (null == field)
169 {
171 }
172 if (!field.FieldType.IsSubclassOf(typeof(DbProviderFactory)))
173 {
175 }
176 object value = field.GetValue(null);
177 if (value == null)
178 {
180 }
181 return (DbProviderFactory)value;
182 }
183
194}
void AddRange(IEnumerable< KeyValuePair< TKey, TValue > > collection)
static ArgumentException Argument(string error)
Definition ADP.cs:678
static void CheckArgumentNull([NotNull] object value, string parameterName)
Definition ADP.cs:782
static InvalidOperationException InvalidOperation(string error)
Definition ADP.cs:746
static void CheckArgumentLength(string value, string parameterName)
Definition ADP.cs:86
DbProviderFactory? ProviderFactory
static void RegisterFactory(string providerInvariantName, DbProviderFactory factory)
static ? DbProviderFactory GetFactory(DbConnection connection)
static void RegisterFactory(string providerInvariantName, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] Type providerFactoryClass)
static bool TryGetFactory(string providerInvariantName, [NotNullWhen(true)] out DbProviderFactory? factory)
static Type GetProviderTypeFromTypeName([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] string assemblyQualifiedName)
static void RegisterFactory(string providerInvariantName, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] string factoryTypeAssemblyQualifiedName)
static readonly ConcurrentDictionary< string, ProviderRegistration > _registeredFactories
static DbProviderFactory GetFactory(string providerInvariantName)
static DbProviderFactory GetFactory(DataRow providerRow)
static DbProviderFactory GetFactory(string providerInvariantName, bool throwOnError)
static bool UnregisterFactory(string providerInvariantName)
static IEnumerable< string > GetProviderInvariantNames()
static DbProviderFactory GetFactoryInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] Type providerFactoryClass)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string ADP_DbProviderFactories_NoAssemblyQualifiedName
Definition SR.cs:914
static string ADP_DbProviderFactories_NotAFactoryType
Definition SR.cs:916
static string ADP_DbProviderFactories_NoInstance
Definition SR.cs:910
static string ADP_DbProviderFactories_FactoryNotLoadable
Definition SR.cs:912
static string ADP_DbProviderFactories_InvariantNameNotFound
Definition SR.cs:908
Definition SR.cs:7
static ? Type GetType(string typeName, bool throwOnError, bool ignoreCase)
Definition Type.cs:408
ProviderRegistration([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] string factoryTypeAssemblyQualifiedName, DbProviderFactory factoryInstance)