Alex
Alex

Reputation: 1

Reflection: ODBC DbProviderFactory

I am trying to obtaining the DbProviderFactory of System.Data.Odbc v8.0.0 via reflection.

This is my code

var odbcPath = "..\\lib\\System.Data.Odbc.dll";
var asm = Assembly.LoadFrom(odbcPath);

var aQName = asm.DefinedTypes.Where(a =\> a.FullName.Equals("System.Data.Odbc.OdbcFactory", StringComparison.OrdinalIgnoreCase)).FirstOrDefault().AssemblyQualifiedName;

var factoryType = Type.GetType(aQName);
var _DbProviderFactory = factoryType.InvokeMember("Instance", BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static | BindingFlags.GetField, null, null, null) as DbProviderFactory;

var con = _DbProviderFactory.CreateConnection();

With other provider the same code works (for example System.Data.SqlClient or Oracle.ManagedDataAccess.Core). With odbc i get null on InvokeMember "Instance". Where am I going wrong?

Upvotes: 0

Views: 40

Answers (0)

Related Questions