我正在做一些实验与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 {
}

由于

有帮助吗?

解决方案

在声明codeModel.AddNamespace将返回CodeNamespace的对象。 您可以使用您的第一个命名空间,然后插入这样一行找到命名空间的EditPoint。

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

我不知道这是否会放线,在你想要的地方,但这个想法是让EditPoint,然后用它来插入该行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top