【发布时间】:2013-11-28 09:41:25
【问题描述】:
我有一个 C# Visual Studio 2010 控制台应用程序,它从 Excel 电子表格中读取行,然后使用 StreamWriter 相应地生成 C# 类。
类中生成的代码行未格式化 - 因为它们没有缩进。
我知道我可以手动打开这些文件并通过键入 ctrl E + D 对其进行格式化。
但我需要知道如何在生成器应用程序中以编程方式格式化它们。
我尝试了以下代码:
Type typeDTE = typeDTE = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
DTE dte = (DTE)Activator.CreateInstance(typeDTE, true);
dte.ExecuteCommand("Edit.FormatDocument", @"D:\Dev\ClinicalAuditGenerator\src\ClinicalAuditGenerator\Files\Entity\Patient.cs");
但是有两个问题
1) CreateInstance 需要将近 30 秒
2) ExecuteCommand 抛出以下异常:
Command Edit.FormatDocument is not available.
谢谢
【问题讨论】:
-
"类中生成的代码行未格式化。" - 在我看来这是你需要解决的问题......
-
公平评论。但我不想在生成器中添加大量缩进,然后在进行更改时必须跟上哪些部分的缩进量等。
-
只需将编写器包装在一个子类中,并在编写时为其提供缩进级别 - 编写器可以决定使用什么字符进行缩进。
-
感谢 cmets,但我已经编写了大部分代码,并且不想通过提供缩进级别。这就是为什么我想让其他东西为我做这件事......
标签: c# visual-studio-2010 envdte