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

Visual Studio 2019中ASP.NET项目提取接口类失败报错如何解决?

故障原因

这个System.ArgumentException: textContainer is not a SourceTextContainer报错是Visual Studio 2019特定版本的Roslyn语言服务已知bug,通常由以下几种情况触发:

  • 当前打开的代码文件存在未保存的临时修改,内存中的文本容器和磁盘文件不同步
  • 项目本地缓存损坏,导致重构操作无法正确识别当前文件的文本结构
  • 安装的第三方代码扩展(如格式化、重构类插件)和VS自带的重构功能冲突

修复方案

  • 首先执行基础排查:保存LanguageRepository.cs的所有修改,关闭所有打开的代码标签页,重新打开该文件后再次执行提取接口操作,大部分轻度同步问题可直接解决。
  • 若上一步无效,清理项目缓存:关闭Visual Studio,删除项目根目录下的.vs隐藏文件夹,同时删除解决方案下所有项目的bin、obj文件夹,重启VS重新加载项目后再操作。
  • 排查插件冲突:按住Ctrl键启动Visual Studio直到弹出安全模式提示,进入安全模式后再次执行提取接口操作。如果操作正常,说明是第三方扩展冲突,逐一禁用近期安装的代码扩展即可定位问题。
  • 可以用两种替代方案绕过故障:
    1. 提取接口时选择「生成到新文件」而非「添加到当前文件」,如果新文件生成正常,你可以手动把接口代码复制到目标文件后删除多余的ILanguageRepository.cs即可。
    2. 手动编写接口,根据你现有的实现,接口代码如下:
public interface ILanguageRepository
{
    Task<int> AddNewLanguage(LanguageModel language);
    Task<List<LanguageModel>> GetLanguages();
}

直接把这段代码放到当前文件的LanguageRepository类定义上方即可,效果和自动提取完全一致。

  • 如果以上方法都无效,将Visual Studio 2019更新到最新的16.11.x正式版即可,该bug在后续补丁中已经被官方修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 12:24:00