Hi,
I use ODP.NET
64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
ODAC 11.2 Release 3 (11.2.0.2.1)
(not Managed, too older and new versions installed in several PCs)
64-bit ODAC 12c Release 2 (12.1.0.1.2) for Windows x64
ODAC 12c Release 2 (12.1.0.1.2) and Oracle Developer Tools for Visual Studio
For Oracle.DataAccess (not managed ODP.NET),
how can I get programatically (C#) the TNSNames path the Oracle.DataAccess assembly (OracleConnection class) that I used ?
[TestMethod]
public void Version_OracleDataAccess_ODPnet_test()
{
var t = typeof(Oracle.DataAccess.Client.OracleConnection);
TestContext.WriteLine("Assembly Oracle.DataAccess: " + t.Assembly.FullName);
TestContext.WriteLine("Oracle.DataAccess. Location: " + (t.Assembly).Location);
TestContext.WriteLine("Oracle.DataAccess. GlobalAssemblyCache: " + (t.Assembly).GlobalAssemblyCache);
TestContext.WriteLine("Oracle.DataAccess. AssemblyQualifiedName: " + t.AssemblyQualifiedName);
TestContext.WriteLine("Oracle.DataAccess. Module.FullyQualifiedName: " + (t.Module.FullyQualifiedName));
TestContext.WriteLine("\r\n");
Assert.IsTrue((t.Assembly).GlobalAssemblyCache, t.Name + " no está en GAC");
var conectado = false;
try
{
string connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ZZZ.ZZZ.ZZZ.ZZZ)(PORT=1523))" +
"(CONNECT_DATA=(SID=oas1d)));User Id=XXXX;Password=XXXX;";
using (var conn = new OracleConnection(connstring))
{
conn.Open();
TestContext.WriteLine("Oracle.DataAccess.OracleConnection State: " + conn.State);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection ServerVersion: " + conn.ServerVersion);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection DataSource: " + conn.DataSource);
// For ODP.NET older versions not exists property ServiceName
//
// System.MissingMethodException: Método no encontrado: 'System.String Oracle.DataAccess.Client.OracleConnection.get_ServiceName()'.
if (true)
{
//TestContext.WriteLine("Oracle.DataAccess.OracleConnection ModuleName: " + conn.ModuleName);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection ServiceName: " + conn.ServiceName);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection InstanceName: " + conn.InstanceName);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection HostName: " + conn.HostName);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection DatabaseName: " + conn.DatabaseName);
TestContext.WriteLine("Oracle.DataAccess.OracleConnection DatabaseDomainName: " + conn.DatabaseDomainName);
}
Assert.AreEqual(conn.State, ConnectionState.Open, "La conexión no está Open");
conectado = true;
conn.Close();
}
Assert.IsTrue(conectado, "Error en la conexión " + connstring);
}
catch (Exception ex)
{
Assert.Fail("Error en la conexión. Msg: " + ex.ToString());
}
}
thanks