string constr = "Data Source=.;Initial Catalog=xhc;Integrated Security=True";
//获取类型中的私有成员
PropertyInfo pInfo = typeof(SqlConnection).GetProperty("InnerConnection", BindingFlags.NonPublic | BindingFlags.Instance);
object obj1 = null;
object obj2 = null;
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
//获取第一个con中的InnerConnection属性中的值。
obj1 = pInfo.GetValue(con, null);
using (SqlCommand cm = new SqlCommand("select * from TblStudent", con))
{
cm.ExecuteNonQuery();
}
con.Close();
}
Console.WriteLine("===========ok=============");
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
//获取第二个con中的InnerConnection属性的值。
obj2 = pInfo.GetValue(con, null);
using (SqlCommand cm = new SqlCommand("select * from TblStudent", con))
{
cm.ExecuteNonQuery();
}
con.Close();
}
if (object.ReferenceEquals(obj1, obj2))
{
Console.WriteLine("是同一个对象");
}
else
{
Console.WriteLine("不是同一个对象。");
}
Console.WriteLine("===========ok=============");
Console.ReadKey();
通过反射获取SqlConnection连接池中的连接字符串
最新推荐文章于 2019-12-15 15:21:37 发布
本文通过C#代码演示了如何使用反射来获取SqlConnection对象的InnerConnection属性,并比较了两次打开连接时该属性所指的对象是否相同。这有助于理解SqlConnection内部的工作原理。
380

被折叠的 条评论
为什么被折叠?



