我正在使用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 {
}
由于
答案 0 :(得分:1)
语句codeModel.AddNamespace
将返回CodeNamespace的对象。
你可以使用你的第一个命名空间找到命名空间的EditPoint,然后插入一行代码。
CodeNamespace yournamespace = codeModel.AddNamespace(....);
EditPoint2 endEditPoint = yournamespace.GetEndPoint(vsCMPart.vsCMPartWhole).CreateEditPoint();
endEditPoint.InsertNewLine(1);
我不确定这是否会将线放在您想要的位置,但想法是获取EditPoint然后用它来插入线。