/// <inheritdoc /> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException | AppDom.LoadFlags.LoadAssemblies; var type = AppDom.FindType("Npgsql.NpgsqlConnection", "Npgsql", flags); return((IDbConnection)Activator.CreateInstance(type)); }
/// <summary> /// Gets all available <see cref="AudioAPI"/> instances. /// </summary> /// <returns></returns> public static IAudioDecoder[] GetAvailableAudioDecoders() { var decoder = AppDom.GetTypes <IAudioDecoder>(); decoder.Sort(); return(decoder.ToArray()); }
/// <inheritdoc/> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException | (AllowAssemblyLoad ? AppDom.LoadFlags.LoadAssemblies : 0); var type = AppDom.FindType("System.Data.SqlClient.SqlConnection", "System.Data.SqlClient", flags); return((IDbConnection)Activator.CreateInstance(type)); }
/// <summary> /// Gets all available <see cref="AudioAPI"/> instances. /// </summary> /// <returns></returns> public static IAudioAPI[] GetAvailableAudioAPIs() { var apis = AppDom.GetTypes <IAudioAPI>(); apis.Sort(); return(apis.ToArray()); }
/// <summary> /// Obtains all available <see cref="AudioAPI"/> instances. /// </summary> /// <returns></returns> public static IAudioEncoder[] GetAvailableAudioEncoders() { List <IAudioEncoder> encoder = AppDom.GetTypes <IAudioEncoder>(); encoder.Sort(); return(encoder.ToArray()); }
/// <inheritdoc /> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException | AppDom.LoadFlags.LoadAssemblies; var type = AppDom.FindType("System.Data.SQLite.SQLiteConnection", "System.Data.SQLite", flags) ?? AppDom.FindType("Mono.Data.SQLite.SQLiteConnection", "Mono.Data.SQLite", flags) ?? throw new TypeLoadException("Could neither load System.Data.SQLite.SQLiteConnection nor Mono.Data.SQLite.SQLiteConnection!"); return((IDbConnection)Activator.CreateInstance(type)); }
/// <inheritdoc /> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException | AppDom.LoadFlags.LoadAssemblies; var type = AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySql.Data", flags) ?? AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySqlConnector", flags) ?? AppDom.FindType("MySqlConnector.MySqlConnection", "MySqlConnector", flags) ?? throw new TypeLoadException("Could not load type MySql.Data.MySqlClient.MySqlConnection!"); return((IDbConnection)Activator.CreateInstance(type)); }
Type LoadType(string typeName, AppDom.LoadMode mode = AppDom.LoadMode.None) { // typeload fix (old version) if (typeName.StartsWith("Cave.Web.Auth.")) { typeName = typeName.Replace("Cave.Web.Auth.", "Cave.Auth."); } if (typeName.StartsWith("Cave.Web.e")) { typeName = typeName.Replace("Cave.Web.e", "Cave.Web."); } return(AppDom.FindType(typeName, mode)); }
void Paragraph(string className, Bootstrap4 content, string data, string textType = null) { if (data == null) { return; } if (textType != null) { className = ($"{className} " + textType == null ? string.Empty : "text-" + textType).Trim(); } foreach (XNode n in XElement.Parse($"<data>{data}</data>").Nodes()) { string s = n.ToString(); if (s.StartsWith("<see")) { s = s.GetString(-1, ":", "/>").TrimEnd(' ', '"'); bool done = false; try { Type t = AppDom.FindType(s, AppDom.LoadMode.NoException); if (t != null && t.IsValueType && !t.IsEnum && !t.IsPrimitive) { var layout = RowLayout.CreateTyped(t); content.Link($"Table {layout.Name}", "/Explain?type=" + s, textType == null ? null : "btn btn-sm btn-outline-" + textType); done = true; } } catch (Exception ex) { Trace.TraceError("Error explaining type {0}. {1} Falling back to simple description.", s, ex); } if (!done) { content.Link(s.AfterLast('.'), "/Explain?type=" + s, textType == null ? null : "btn btn-sm btn-outline-" + textType); } continue; } content.AddHtml(s); } }
/// <inheritdoc/> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException; var type = AppDom.FindType("System.Data.SQLite.SQLiteConnection", "System.Data.SQLite", flags) ?? AppDom.FindType("Mono.Data.SQLite.SQLiteConnection", "Mono.Data.SQLite", flags); if ((type == null) && AllowAssemblyLoad) { //try with unsafe load flags |= AppDom.LoadFlags.LoadAssemblies; type = AppDom.FindType("System.Data.SQLite.SQLiteConnection", "System.Data.SQLite", flags) ?? AppDom.FindType("Mono.Data.SQLite.SQLiteConnection", "Mono.Data.SQLite", flags); } return(type == null ? throw new TypeLoadException("Could neither load System.Data.SQLite.SQLiteConnection nor Mono.Data.SQLite.SQLiteConnection!") : (IDbConnection)Activator.CreateInstance(type)); }
/// <inheritdoc /> protected override IDbConnection GetDbConnectionType() { var flags = AppDom.LoadFlags.NoException; var type = AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySql.Data", flags) ?? AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySqlConnector", flags) ?? AppDom.FindType("MySqlConnector.MySqlConnection", "MySqlConnector", flags); if ((type == null) && AllowAssemblyLoad) { //try with unsafe load flags |= AppDom.LoadFlags.LoadAssemblies; type = AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySql.Data", flags) ?? AppDom.FindType("MySql.Data.MySqlClient.MySqlConnection", "MySqlConnector", flags) ?? AppDom.FindType("MySqlConnector.MySqlConnection", "MySqlConnector", flags); } return(type == null ? throw new TypeLoadException("Could not load type MySql.Data.MySqlClient.MySqlConnection!") : (IDbConnection)Activator.CreateInstance(type)); }
void ExplainType(WebData data, string name) { Type t = AppDom.FindType(name, AppDom.LoadMode.NoException); if (t == null) { throw new WebServerException(WebError.InvalidParameters, 0, string.Format("Type {0} is unknown!", name)); } if (t != null) { if (t.IsEnum) { ExplainEnum(data, t); return; } if (!t.IsPrimitive && t.IsValueType) { ExplainStruct(data, t); return; } } throw new WebServerException(WebError.InvalidOperation, 0, string.Format("Type {0} cannot be explained!", name)); }
public void SystemUri() { var type = typeof(Uri); var result = AppDom.FindType(type.AssemblyQualifiedName); Assert.AreEqual(type, result); }
internal static RowLayout LoadFieldDefinition(DataReader reader, out int version) { var dateTimeKind = DateTimeKind.Unspecified; var dateTimeType = DateTimeType.Undefined; var stringEncoding = StringEncoding.UTF8; if (reader.ReadString(8) != "DatTable") { throw new FormatException(); } version = reader.Read7BitEncodedInt32(); if ((version < 1) || (version > 4)) { throw new InvalidDataException("Unknown Table version!"); } // read name and create layout var layoutName = reader.ReadString(); var fieldCount = reader.Read7BitEncodedInt32(); var fields = new FieldProperties[fieldCount]; for (var i = 0; i < fieldCount; i++) { var fieldName = reader.ReadString(); var dataType = (DataType)reader.Read7BitEncodedInt32(); var fieldFlags = (FieldFlags)reader.Read7BitEncodedInt32(); var databaseDataType = dataType; switch (dataType) { case DataType.Enum: databaseDataType = DataType.Int64; break; case DataType.User: case DataType.String: databaseDataType = DataType.String; if (version > 2) { stringEncoding = (StringEncoding)reader.Read7BitEncodedInt32(); } else { stringEncoding = StringEncoding.UTF8; } break; case DataType.TimeSpan: if (version > 3) { dateTimeType = (DateTimeType)reader.Read7BitEncodedInt32(); } break; case DataType.DateTime: if (version > 1) { dateTimeKind = (DateTimeKind)reader.Read7BitEncodedInt32(); dateTimeType = (DateTimeType)reader.Read7BitEncodedInt32(); } else { dateTimeKind = DateTimeKind.Utc; dateTimeType = DateTimeType.BigIntHumanReadable; } break; } Type valueType = null; if ((dataType & DataType.MaskRequireValueType) != 0) { var typeName = reader.ReadString(); valueType = AppDom.FindType(typeName.BeforeFirst(','), typeName.AfterFirst(',').Trim()); } var field = fields[i] = new FieldProperties { Index = i, Flags = fieldFlags, DataType = dataType, ValueType = valueType, Name = fieldName, TypeAtDatabase = databaseDataType, NameAtDatabase = fieldName, DateTimeType = dateTimeType, DateTimeKind = dateTimeKind, StringEncoding = stringEncoding }; field.Validate(); } return(RowLayout.CreateUntyped(layoutName, fields)); }
static Bitmap32() { var loaders = AppDom.GetTypes <IBitmap32Loader>(); Loader = loaders.FirstOrDefault(); }