添加新项目时自动添加命名空间

时间:2010-07-23 10:00:45

标签: vb.net visual-studio-2008 configuration namespaces

在C#中添加新项目(类,控件等)时,它会根据项目中的位置自动为文件添加名称空间。

这也适用于VB.NET吗?

将生成代码'Namespace DataClasses.AX'和'End Namespace'。

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

#Region " Constructors "
        Sub New()

        End Sub
#EndRegion
    End Class
End Namespace

4 个答案:

答案 0 :(得分:13)

你不会说你正在使用什么版本的视觉工作室,但默认情况下VS2008是可行的。

转到:C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Code\1033\Class.zip (如果这不存在,我会把你的内容发给你)。

在里面你会找到两个文件:Class.vbClass.vstemplate

打开Class.vb(我提取它并在记事本++中编辑,但任何事情都可以)。 将其更改为:

Namespace $itemfolder$

    Public Class $safeitemname$

    End Class

End Namespace

关闭Visual stuid(所有实例)

保存并替换zip中的那个。

打开命令提示符(最简单的方法是使用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 :(得分:1)

这是Resharper的一部分,您可以在其中创建模板来执行此操作。

这是标准模板。

Namespace $NAMESPACE$
    Public Class $CLASS$ 
        $END$
    End Class
End Namespace

答案 2 :(得分:1)

我猜你可以使用T4模板做同样的事情,或者调整那里的模板。但是T4尚未开放。据我所知。

答案 3 :(得分:0)

Visual Studio 2012: 在应用程序选项卡的项目属性中,有一个名为default namespace的字段。这会自动添加到项目内的文件中。

因此,当您想要在不同项目中引用某些内容时,您可以导入在那里定义的命名空间。因此,基本上没有必要操纵任何模板。