Вход на сайт
Перехватить оракловский Exception?
468 просмотров
Перейти к просмотру всей ветки
Murr_0001 местный житель
в ответ AlexNek 18.02.20 19:32
И как можно грузить ДЛЛ-ки без врапперов?
-----
Как у билли:
// original from DbProviderFactories.cs// modified to be debugged on place.static public DbProviderFactory GetFactory(DataRow providerRow){// fail with ConfigProviderMissing rather than ColumnNotInTheTable exceptionDataColumn column = providerRow.Table.Columns["AssemblyQualifiedName"];if (null != column){// column value may not be a stringstring assemblyQualifiedName = providerRow[column] as string;if (!String.IsNullOrEmpty(assemblyQualifiedName)){// FXCop is concerned about the following line call to Get Type,// If this code is deemed safe during our security review we should add this warning to our exclusion list.// FXCop Message, pertaining to the call to GetType.//// Secure late-binding methods,System.Data.dll!System.Data.Common.DbProviderFactories.GetFactory(System.Data.DataRow):System.Data.Common.DbProviderFactory,Type providerType = Type.GetType(assemblyQualifiedName);if (null != providerType){System.Reflection.FieldInfo providerInstance = providerType.GetField("Instance", System.Reflection.BindingFlags.DeclaredOnly | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);if (null != providerInstance){//Debug.Assert(providerInstance.IsPublic, "field not public");//Debug.Assert(providerInstance.IsStatic, "field not static");if (providerInstance.FieldType.IsSubclassOf(typeof(DbProviderFactory))){object factory = providerInstance.GetValue(null);if (null != factory){return (DbProviderFactory)factory;}// else throw ConfigProviderInvalid}// else throw ConfigProviderInvalid}throw new Exception("ConfigProviderInvalid");}throw new Exception("ConfigProviderNotInstalled");}// else throw ConfigProviderMissing}throw new Exception("ConfigProviderMissing");}
Можно и оригинальный файлик посмотреть - тут Я для отладки "загрубил" проверки и ехцептионы на один язык.
Остальное - описывается в апп.конфиг.
что может быть еще проще интересно.
-----
Там вроде есть - вызов статического метода класса. Все переключения обработчиков - в нем. Ну не нужно мне таскать ссылки на обработчик по всему коду.