防止 CodeDom 分割大字符串
我正在使用 CodeDom 生成 C# 代码,其中一部分涉及吐出 String 变量内容。有时,这些字符串可能会变得相当长。
有没有办法阻止 CodeDom 代码生成器将这些大字符串分割成更小的块?生成器的作用是将长字符串拆分为几个较小的字符串,并在其间插入连接运算符。虽然代码编译得很好,但我不喜欢它破坏了代码的可读性。
I am using CodeDom to generate C# code, and part of that involves to spitting out String variable contents. Sometimes, these strings can get to be quite long.
Is there a way to prevent the CodeDom code generator from splitting those large strings into smaller chunks? What the generator does is that it splits the long strings into a few smaller ones, and inserts a concatenation operator in between. While the code compiles fine, I don't like how it messes up the readability of my code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯..我不这么认为。使用 .NET Reflector 深入研究 Microsoft.CSharp.CSharpCodeGenerator(系统内部)的源代码,我们发现:
和...这个:
如果您进一步挖掘,这两个函数都是不可配置的。
Hmm.. I don't think so. Poking with .NET Reflector into the source code of Microsoft.CSharp.CSharpCodeGenerator (System's internal), we find this:
and ... this:
And if you dig further, both functions are not configurable.
我想我已经找到了解决这个问题的方法:简而言之,我可以通过显式引用我的字符串参数来使用 CodeSnippetExpression,而不是使用 CodePrimitiveExpression 来输出字符串。
适用于我必须使用它的少数情况,但当然我还没有测试所有场景。
I think I have found a way around this: In short, instead of using a CodePrimitiveExpression to output my string, I was able to use a CodeSnippetExpression by explicitly quoting my string argument to it.
Works for the few cases where I've had to use it, but of course I haven't tested all scenarios.