我使用StringReader和XmlReader来处理具有XML代码的字符串。
private static string GetData(string jobResultXml, string pipeName)
{
StringBuilder result = new StringBuilder();
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(jobResultXml), settings);
它编译/构建正常,但是当我运行StyleCop时,我收到此错误消息。
Error 6 CA2000 : Microsoft.Reliability : In
method 'ModelsimCommunicator.GetPipeData(string, string)', call System.IDisposable.Dispose
on object 'new StringReader(jobResultXml)' before all references to it are out of scope.
避免此StyleCop错误消息需要什么?
答案 0 :(得分:2)
尝试:
private static string GetData(string jobResultXml, string pipeName)
{
StringBuilder result = new StringBuilder();
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
using (StringReader stringReader = new StringReader(jobResultXml))
using (XmlReader xmlReader = XmlReader.Create(stringReader, settings))
{
}
StringReader
是IDisposable
所以StyleCop要求你在它超出范围之前将其处理掉。 using()
就是这么做的。此外,当你在那里时,你也可以using()
使用XmlReader
,因为那也是IDisposable
:)