问题标签 [ca2202]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
75 浏览

c# - 带有 StreamWriter 的 FileStream 上的 CA2202

我正在使用文件流和流写入器在文件上写一个小文本,它给了我 CA2202 警告

我已经在这里尝试了解决方案CA2202: Do not dispose objects multiple times

你能给我一些建议吗?请。

谢谢

0 投票
1 回答
543 浏览

c# - 无法摆脱 CA2202 警告

我已经阅读了 MSDN 页面:https ://msdn.microsoft.com/en-us/library/ms182334.aspx

还有这个答案:https ://stackoverflow.com/a/32554589/2257227

但以下代码仍会为我生成 2 个 CA2202 警告:

“bufferedStream.Dispose()”行仍然给出以下两个警告:

严重性代码 描述 项目文件行抑制状态警告 CA2202 对象“bufferedStream”可以在方法“Loader.UpdateIndex()”中多次处理。为避免生成 System.ObjectDisposedException,您不应在对象上多次调用 Dispose。:行:930 Loader C:\Users\user\Loader\Loader.cs 930 Active

严重性代码 描述 项目文件行抑制状态警告 CA2202 对象“fileStream”可以在方法“Loader.UpdateIndex()”中多次处理。为避免生成 System.ObjectDisposedException,您不应在对象上多次调用 Dispose。:行:930、935 Loader C:\Users\user\Loader\Loader.cs 930 Active

大概这是因为 fileStream 可以被多次处理?但是 bufferedStream 怎么能被多次处理呢?

编辑:我已将@Damien_The_Unbeliever 的答案标记为正确。您实际上也可以将其修剪下来,因为正如下面某处提到的,您不需要 bufferedReader 变量。这就是我最终的结果。这有点难看,但它有效:

0 投票
2 回答
4194 浏览

sql - 如何处理这个 SQL 注入警告 (CA2100)

以下是我从 Microsoft 页面获得的代码:SqlCommand

但是,VS 代码分析仍然抱怨“CA2100”:

警告 CA2100 在“FlexClaimFormRepository.ExecuteNonQuery(string, string, CommandType, params SqlParameter[])”中传递给“SqlCommand.SqlCommand(string, SqlConnection)”的查询字符串可能包含以下变量“commandText”。如果这些变量中的任何一个可能来自用户输入,请考虑使用存储过程或参数化 SQL 查询,而不是使用字符串连接构建查询。

我知道警告存在的确切原因,但是关于如何摆脱它的任何想法?鉴于在函数内设置 commandText 是不可接受的,因为我希望它是一个参数。

0 投票
2 回答
238 浏览

c# - Streamwriter CA2202:不要多次处理对象

我在调试时使用一段代码将一行信息写入文件。

我不想让文件保持打开状态,因为如果它是调试信息,我不想在程序崩溃时冒最后一点的风险。

我可能不明白 CA2202 告诉我什么。

这是整个错误声明:

警告 CA2202 对象“tw”可以在方法“familyFinances.appendLine(string, string)”中多次处理。为避免生成 System.ObjectDisposedException,您不应在一个对象上多次调用 Dispose。

“tw”只存在于这段代码中。而且,我从来没有以这种方式运行它时出错。

选项或建议?

0 投票
2 回答
82 浏览

c# - 即使已处理,仍然是一个“多次处理”问题

在我的一些项目中,我一直在使用一对久经考验的数据加密/解密方法(加密方法粘贴在下面)。但是我一直被这个关于 memoryStream 对象的 CA2202 警告(“不要多次处理对象”)所困扰。我相信我以适当的方式处理了这个问题,但每当我在 Visual Studio 中运行分析时,我仍然会收到警告。它从未在生产代码中引发异常,但我仍然想一劳永逸地摆脱警告。那可能吗?还是我应该忽略它?提前致谢。

0 投票
1 回答
144 浏览

c# - CA2202 ForEach 循环警告

fxcop 分析为以下方法主体提供CA2202 警告foreach

警告 CA2202 对象“steps.GetEnumerator()”可以在方法“LoggingService.LogAnalysis(IEnumerable, bool)”中多次处理。为避免生成 System.ObjectDisposedException,您不应在对象上多次调用 Dispose。:行:34

我做了一些研究,发现嵌套 using语句和Dispose调用会导致分析器发疯发出此警告,但我既没有显式 Dispose调用也没有using块。foreach我还没有遇到过循环弹出此警告的另一种情况。我知道如何抑制警告,但我只是想了解这可能是什么原因

0 投票
1 回答
131 浏览

c# - 您不应在一个对象上多次调用 Dispose (CA2202)

我已经看过关于这个问题的帖子,但我似乎无法通过遵循此处的示例和其他在线位置来摆脱警告。你看到我错过了什么以避免得到CA2202 Warning说:

为避免生成 System.ObjectDisposedException,您不应在一个对象上多次调用 Dispose。

我认为 using 会处理xmlReader. 它是否也在处理stringReader

警告stringReader.Dispose()在线。