Автоматически добавлять пространство имен при добавлении нового элемента - PullRequest
7 голосов
/ 23 июля 2010

При добавлении нового элемента (класса, элемента управления и т. Д.) В C # он автоматически добавляет пространство имен в файл в зависимости от местоположения в проекте.

Это также доступно для VB.NET?

Будет создан код «Пространство имен DataClasses.AX» и «Конечное пространство имен».

Namespace DataClasses.AX
    <Serializable()> _
    Public Class AxInventItem

#Region " Constructors "
        Sub New()

        End Sub
#EndRegion
    End Class
End Namespace

Ответы [ 4 ]

13 голосов
/ 23 июля 2010

Вы не говорите, какую версию visual studio вы используете, но это возможно по умолчанию в VS2008.

Перейти к: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Code\1033\Class.zip (если этого не существует, я опубликую вам содержимое моего).

Внутри вы найдете два файла: Class.vb и Class.vstemplate

Открыть Class.vb (я извлек его и отредактировал в блокноте ++, но все будет в порядке). Измените его следующим образом:

Namespace $itemfolder$

    Public Class $safeitemname$

    End Class

End Namespace

Shut Visual Stuid (все экземпляры)

Сохраните и замените один из них внутри почтового индекса.

Откройте командную строку (проще всего использовать командную строку Visual Studio) и выполните следующее:

devenv.exe /InstallVSTemplates

Снова откройте Visual Studio, создайте пустой проект и добавьте папку в проект, добавьте класс в папку, и вы автоматически добавите пространство имен в файл класса.

Редактировать

Class.vb:

Namespace $itemfolder$

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks>Class Created by $username$ on $date$</remarks>
    Public Class $safeitemname$

    End Class

End Namespace

Class.vstemplate:

<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="3020" />
    <Description Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="3021" />
    <Icon Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="4510" />
    <ProjectType>VisualBasic</ProjectType>
    <SortOrder>100</SortOrder>
    <DefaultName>Class.vb</DefaultName>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <TemplateID>Microsoft.VisualBasic.Code.Class</TemplateID>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
  </TemplateData>
  <TemplateContent>
    <ProjectItem ReplaceParameters="true">Class.vb</ProjectItem>
  </TemplateContent>
  <WizardExtension>
    <Assembly>VBClassTemplateWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=f12a64f29cf5aee5</Assembly>
    <FullClassName>VBClassTemplates.VBClassReplacements</FullClassName>
  </WizardExtension>

</VSTemplate>
1 голос
/ 23 июля 2010

И я думаю, вы могли бы использовать шаблон T4, чтобы сделать то же самое, или адаптировать тот, который там есть. Но Т4 еще не очень открыт. Насколько я знаю.

1 голос
/ 23 июля 2010

Это доступно как часть Resharper, где вы можете создавать шаблоны для этого.

Это стандартный шаблон.

Namespace $NAMESPACE$
    Public Class $CLASS$ 
        $END$
    End Class
End Namespace
0 голосов
/ 18 мая 2015

Visual Studio 2012: В свойствах проекта на вкладке приложения есть поле с именем пространства имен по умолчанию. Это автоматически добавляется к файлам внутри проекта.

Поэтому, если вы хотите сослаться на что-то в другом проекте, вы можете импортировать определенное там пространство имен. Так что, по-моему, в принципе нет необходимости манипулировать каким-либо шаблоном.

...