You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core应用中C#扩展方法无法使用问题求助

解决.NET Core中扩展方法未识别的思路

针对你遇到的问题,从以下几个方向排查:

1. 确认命名空间引用

即使扩展方法和调用代码在同一命名空间,有时IDE的智能感知会出现延迟或异常:

  • 如果调用代码所在的类不在CoreAPI1命名空间下,必须添加using CoreAPI1;
  • 即使在同一命名空间,手动添加using CoreAPI1;也能触发IDE重新识别扩展方法

2. 检查SqlDataReader的类型一致性

.NET Core中SqlDataReader有两个常用命名空间:

  • 旧版:System.Data.SqlClient
  • 新版:Microsoft.Data.SqlClient
    确保你的SQL_Data类中引用的SqlDataReader和扩展方法参数的SqlDataReader是同一命名空间下的类型。如果两者引用的命名空间不一致,扩展方法会因类型不匹配而无法识别。

3. 清理并重建项目

有时.NET Core项目的缓存文件会导致智能感知异常:

  • 手动删除项目目录下的bin和obj文件夹
  • 在Visual Studio中执行清理解决方案,再执行重建解决方案

额外提示:修复DBReader方法的潜在问题

你的DBReader方法存在资源泄漏风险:用using包裹SqlCommand后返回ExecuteReader(),此时SqlCommand会被立即释放,导致返回的SqlDataReader无法正常工作。建议修改为:

public SqlDataReader DBReader(string query)
{
    SqlCommand cmd = new SqlCommand(query, cn);
    return cmd.ExecuteReader(CommandBehavior.CloseConnection); // 关闭Reader时自动关闭连接
}

或者调整逻辑,避免在返回Reader前释放Command。

内容的提问来源于stack exchange,提问作者KWallace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:45:54