التحكم في تنسيق إخراج رمز Codemodel: وضع الخطوط بين إعلانات مساحة الاسم
-
27-09-2019 - |
سؤال
أقوم ببعض التجارب مع Codemodel في Visual Studio. حاولت إنشاء ملف مع مساحين أسماء هناك من خلال نموذج رمز 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 yournamespace = codeModel.AddNamespace(....);
EditPoint2 endEditPoint = yournamespace.GetEndPoint(vsCMPart.vsCMPartWhole).CreateEditPoint();
endEditPoint.InsertNewLine(1);
لست متأكدًا مما إذا كان هذا سيضع الخط في المكان الذي تريده ولكن الفكرة هي الحصول على نقطة التحرير ثم استخدامها لإدراج الخط.
لا تنتمي إلى StackOverflow