При использовании пользовательских шаблонов Visual Studio с параметрами, как вы можете получить фактическое корневое пространство имен? - PullRequest
3 голосов
/ 21 сентября 2011

Я пытаюсь настроить шаблон для создания класса модульного теста с некоторой базовой структурой и использованием операторов по умолчанию.Для этого я создал пользовательский шаблон VS2010, и почти все работает правильно.

Проблема, с которой я столкнулся, заключается в том, что я пытаюсь сослаться на базовое пространство имен моего проекта в моих операторах использования и не могу определить, есть лиэто параметр, который позволит мне сделать это.

Пример того, что я хочу, предполагая, что мой проект называется MyProduct.Test:

using NUnit.Framework;
using MyProduct.Test.Base;

namespace MyProduct.Test.BLL.Services.MyService
{
    [TestFixture]
    public class MyServiceTest : TestBase
    {
        [SetUp]
        public void Setup()
        etc...

Я могу генерировать все, кроме using MyProduct.Test.Baseс шаблоном ниже:

using NUnit.Framework;
using $safeprojectname$.Base;

namespace $rootnamespace$
{
    [TestFixture]
    public class $safeitemname$ : TestBase
    {
        [SetUp]
        public void Setup()
        etc...

К сожалению, $ safeprojectname $ доступно только для шаблонов проектов, но не шаблонов элементов.

Этот шаблон приводит к следующему выводу:

using NUnit.Framework;
using $safeprojectname$.Base;

namespace MyProduct.Test.BLL.Services.MyService
{
    [TestFixture]
    public class MyServiceTest : TestBase
    {
        [SetUp]
        public void Setup()
        etc...

Можно ли как-нибудь получить фактическое корневое пространство имен моего проекта (поскольку $ rootnamespace $ фактически выводит пространство имен для добавляемого файла в зависимости от его местоположения)?

Примечание. Очевидно, что я могу настроить это для правильной работы для одного проекта, но было бы гораздо полезнее иметь шаблон, который работает для всех пользователей.rojects.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...