控制CodeModel的代码输出格式:在命名空间声明之间添加行

时间:2010-05-16 22:33:36

标签: c# visual-studio visual-studio-2010 vsx c#-code-model

我正在使用Visual Studio的CodeModel进行一些实验。我尝试通过VS的代码模型在那里创建一个带有两个名称空间的文件:

CodeModel codeModel = projItem.ContainingProject.CodeModel;
codeModel.AddNamespace("Namespaces.FirstNamespace", "namespacestest.cs");
codeModel.AddNamespace("Namespaces.SecondNamespace", "namespacestest.cs");

此类代码的输出为:

//file namespacestest.cs
namespace Namespaces.FirstNamespace {
}
namespace Namespaces.SecondNamespace {
}

几乎我正在寻找的东西。这里唯一的问题是我想控制间距:在第一个和第二个命名空间之间至少有一行。有没有人知道实现这一目标的方法?

这就是我想要的:

//file namespacestest.cs
namespace Namespaces.FirstNamespace {
}

namespace Namespaces.SecondNamespace {
}

由于

1 个答案:

答案 0 :(得分:1)

语句codeModel.AddNamespace将返回CodeNamespace的对象。 你可以使用你的第一个命名空间找到命名空间的EditPoint,然后插入一行代码。

CodeNamespace yournamespace = codeModel.AddNamespace(....);
EditPoint2 endEditPoint = yournamespace.GetEndPoint(vsCMPart.vsCMPartWhole).CreateEditPoint();
endEditPoint.InsertNewLine(1);

我不确定这是否会将线放在您想要的位置,但想法是获取EditPoint然后用它来插入线。