紧急求助,为何conn不关闭?

1/3. 以下是完整 测试类:
图片说明

2/3. 以下是调试的时候出现的问题:
图片说明

3/3. 以下是完整的测试代码:(可直接运行TestConn.Test()进行测试)
代码如下:



    public class TestConn
    {
        private IDbConnection _conn;

        public IDbConnection Conn//1.1 此属性去掉也可关闭
        {
            get
            {
                if (_conn.State != ConnectionState.Open && _conn.State != ConnectionState.Connecting)
                {
                    _conn.Open();//1.2 此句去掉后可关闭
                } 
                return _conn; 
            }
        }

        //2.1 此处无作用,如果1.2开启的话
        public void Close()
        {
            _conn.Close();
        }

        public TestConn()
        {
            //_conn = CreateConn.GetOpenConnection();
            _conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DapperSqlServerTest"].ToString());
            _conn.Open();
        }

        public static void Test()
        {
            TestConn con = new TestConn();
            con.Close(); //2.1 不起作用,原因是什么:?百思不得其解。
        }

    }

测试没有问题,目测调试的时候你的鼠标肯定是移动到public IDbConnection Conn这属性过了,导致又重新打开了连接。。

图片说明

调用close就可以了,至于state是open,这个和是否close没关系

关闭操作是否是异步的通讯过程,你close后休眠一段时间,再看状态试试