sqlConnection如何知道读取器已附加到读取器
据我所知,sqlConnection知道它连接有读取器,因为它在内部维护对其的引用。
对Reflector的明智使用表明,sqlConnection对象具有类型为DBConnectionInternal的私有字段,该私有字段填充有此抽象类的许多具体实现之一。当您尝试向连接添加第二个实时读取器时,将在内部连接上调用方法“ ValidateConnectionForExecute”,这将追溯到对内部“ ReferenceCollection”的检查。当这显示现有的实时阅读器时,将引发异常。
我想,如果您愿意的话,可以在运行时通过反射将所有内容挖掘出来。