请某人通过不给SqlDataReader提供公共构造函数来解释可能有什么优点。不使用新关键字创建SqlDataReader对象有什么好处。
谢谢, Tinks
答案 0 :(得分:2)
SqlDataReader
旨在仅使用ADO.NET框架中SqlCommand
或其他数据源的结果创建。我假设通过连接到SQL Server数据库枚举查询的结果将需要为读者提供许多内部实现方面,ADO.NET类之外的任何人本身都没有任何方法提供。
如果你想自己创建一个datareader(如果你正在实现一个新的数据提供者,你只需要这样做),那就是IDataReader
接口。
如果您想自定义datareader行为(例如,如果您正在为ADO.NET编写一个包装器库,它提供了一些额外的行为,例如自动记录异常,自动重试等),那么您可能希望封装SqlDataReader
使其成为您正在创建的任何类的私有成员(例如,假设您正在创建ExceptionLoggingDataReader
)。您实际上并没有真正更改SQL数据访问行为,这就是为SqlDataReader
创建子类不是允许选项的原因。