Pregunta

Estoy haciendo algunos experimentos con CodeModel de Visual Studio. He intentado crear un archivo con dos espacios de nombres de allí a través de código del modelo de VS:

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

la salida de dicho código es:

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

¿Qué es casi lo que estoy buscando. El único problema aquí es que me gustaría controlar el espacio: que tiene por lo menos una línea entre el primer y el segundo espacio de nombres. Lo hace por casualidad alguien sabe de una manera de lograr esto?

Esto es lo que quiero:

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

namespace Namespaces.SecondNamespace {
}

Gracias

¿Fue útil?

Solución

La declaración codeModel.AddNamespace le devolverá un objeto de CodeNamespace. se puede encontrar el EditPoint del espacio de nombres utilizando el espacio de nombres de la primera y luego insertar una línea como esta.

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

No estoy seguro de si esto va a poner la línea en el lugar que desee, pero la idea es conseguir que el EditPoint y luego usarlo para insertar la línea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top