【发布时间】:2010-11-05 06:43:14
【问题描述】:
我们已被要求在我们的代码中提供所有可能的错误消息以用于支持目的。
不幸的是,它们并不都位于资源文件中,所以我认为如果我们可以获取应用程序中所有字符串的列表,我们就可以从那里过滤掉错误消息。
有什么可以让我在 C# 应用程序中执行此操作的吗?
干杯
【问题讨论】:
我们已被要求在我们的代码中提供所有可能的错误消息以用于支持目的。
不幸的是,它们并不都位于资源文件中,所以我认为如果我们可以获取应用程序中所有字符串的列表,我们就可以从那里过滤掉错误消息。
有什么可以让我在 C# 应用程序中执行此操作的吗?
干杯
【问题讨论】:
如何使用这样的查找功能
如果您有模式,也可以使用正则表达式,并通过将“使用”更改为“正则表达式”来详细搜索
【讨论】:
"foo\"bar"
如果您有 ReSharper 5,您可以使用他们的 localization feature 来帮助您完成此操作。
为您的项目启用本地化,然后右键单击该项目并选择查找代码问题。它将列出硬编码到应用程序中的字符串的所有实例。 (除非你设置了Localizable(false))
【讨论】:
如果您能想到在每个消息行上使用的一致字符串(例如“throw new exception(”或“MessageBox.Show(”),它可能就像在 Visual Studio 中按 Ctrl+Shift+F 一样简单(在文件中查找),输入,然后将结果复制到文件中。
在您进入 Regex 领域之前,请查看以下内容:Regex to parse C# source code to find all strings
【讨论】:
我确信有一些 RegEx 表达式或一些您可以在您的代码库上运行的表达式,并且 也许 会捕获所有字符串。鉴于这是一项业务需求,并且您将来可能会重复此操作,我将首先进行重构以获取结构化格式的所有错误消息。然后,自动分析结构化格式。 资源文件可能是合适的。
【讨论】: