gpt4 book ai didi

c# - 从 Roslyn 编译中获取特定于文化的错误

转载 作者:行者123 更新时间:2023-11-30 17:30:51 24 4
gpt4 key购买 nike

我正在尝试使用 Roslyn Emit Api 编译一些语法不正确的代码。编译代码的线程将 Culture 设置为“fr-Fr”但我从 Roslyn api 获得的诊断消息是英文的。例如

error BC30037: Character is not valid.

我想知道是否有办法在特定于线程的文化中获取错误消息。codeDom 也是如此。

最佳答案

这可能不是一个可行的答案,但无论如何我都会发布它以防万一。

Roslyn 编译器是开源的,因此可以对其进行修改,这样就可以将错误消息从英文更改为法文,或其他任何形式。请注意,Roslyn 是一个庞大的程序,重建它并不是那么容易,至少以我的经验来看是这样。

我写了几篇关于我修改 Roslyn 的经验的博客文章。我最近的修改包括添加一条新的错误消息 - 这就是我碰巧发现这个问题的方式。

https://renniestechblog.com/information/33-modifying-roslyn-step-1-initial-test

https://renniestechblog.com/information/39-modifying-roslyn-step-6-fake-attribute-yacksserialization

甚至可以通过向项目添加额外的 CSharpResources.fr-FR.resx 文件,并让 ResourceManager 自动选择正确的,使 Roslyn 多语言化.resx 文件。这绝对适用于 .Net Framework WinForms 项目,但我不知道此功能是否已保留在新的 .Net 标准格式中。

关于c# - 从 Roslyn 编译中获取特定于文化的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48949214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com