当前位置: 首页 > 知识库问答 >
问题:

C#项目模板和项目名称的变量?

万俟超
2023-03-14

我的大部分代码由三个相关的类组成,一个基于名为I实现的接口,有一个单一的执行方法(帮助实施单一责任)以及一个响应和上下文类。我受够了这个,它费力,重复和耗时,所以今天我决定写一个C#项目模板。

模板文件和。vstemplate文件如下所示:

实施。vstemplate

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
  <TemplateData>
    <Name>Implementation</Name>
    <Description>Genertates a skeletal concrete IImplementation class complete with Response and Context classes.</Description>
    <Icon>Class.ico</Icon>
    <TemplateID>74206442-81cb-4328-afc8-08c40fb5d3e7</TemplateID>
    <ProjectType>CSharp</ProjectType>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <DefaultName>Class.cs</DefaultName>
  </TemplateData>
  <TemplateContent>
      <References>
          <Reference>
              <Assembly>System</Assembly>
          </Reference>
     </References>
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Implementation.cs</ProjectItem>
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs\$fileinputname$Response.cs" ReplaceParameters="true">Response.cs</ProjectItem>
        <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs\$fileinputname$Context.cs" ReplaceParameters="true">Context.cs</ProjectItem>
  </TemplateContent>
  <WizardExtension>
      <Assembly>Microsoft.VisualStudio.Web.Application, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
  <FullClassName>Microsoft.VisualStudio.Web.Application.WATemplateWizard />        </WizardExtension>
</VSTemplate>

实施反恐精英

using System;
using $safeprojectname$.Implementation.Attibutes;
using $safeprojectname$.Implementation.Interfaces;

namespace $rootnamespace$
{
    [AutofacRegisterImplementation]
    public class $classname$ : 
        IImplementation<$classname$Response, $classname$Context>
    {
        #region Execute

        public $fileinputname$Response Execute($fileinputname$Context context)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}

回答反恐精英

namespace $rootnamespace$
{
    public class $classname$Response
    {
        #region Properties

        #endregion
    }
}

上下文反恐精英

namespace $rootnamespace$
{
    public class $classname$Context
    {
        #region Properties

        #endregion
    }
}

它工作得很好,我非常高兴,因为我甚至成功地将响应和上下文类嵌套在植入类下面,这意味着通过大量实现减少了项目文件中的混乱(这是我极力避免的!)

除了以下来自实现的代码片段。反恐精英:

using $safeprojectname$.Implementation.Attibutes;
using $safeprojectname$.Implementation.Interfaces;

生成此(整个生成的文件):

using System;
using $safeprojectname$.Implementation.Attibutes;
using $safeprojectname$.Implementation.Interfaces;

namespace Balcony.Common.Implementation
{
    [AutofacRegisterImplementation]
    public class Test1 : 
        IImplementation<Test1Response, Test1Context>
    {
        #region Execute

        public Test1Response Execute(Test1Context context)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}

这给我带来了一个结论,$安全工程名称$仅适用于C#项目模板。这是正确的吗?

有人知道如何在C#项模板中获得安全的项目名称变量以正确展开吗?

同时,在它。。。如何使其进入“新建自模板”子菜单?你在哪里可以偷到这门课。ico文件?:)

共有1个答案

伯丁雷
2023-03-14

我会说使用$rootnamespace$而不是项目名称,这应该做同样的事情。

 类似资料:
  • 我按照这里的说明在Android Studio上更改项目名称,虽然项目资源管理器中的项目名称更改了,但顶部IDE栏中的项目名称没有更改(IDE窗口的左上方)。我通过右键单击项目名称重命名了项目,更新了清单的app_name和包名称。

  • cocos2d-x_linux_qt_template 是给cocos2d-x在*nix平台补充了一个qt项目模板,平时我做项目都在用。 比起官方的makefile要更容易管理项目,比起eclipse的cdt要更适合做C++的开发。 配置也特别简单。 不知道有少人跟我一样在linux上进行cocos2d-x游戏的编程工作。 希望能方便一些同胞吧。 这里有一个简单的预览: http://www.co

  • 有人能告诉我如何解决这个问题吗 我正在尝试更改项目名称。我总是这样做: 在配置/app.php中更改APP_NAME 在. env中更改APP_NAME 运行php artisan配置:缓存和php artisan配置:清除 但这两个命令显示我的错误,我无法在互联网上找到解决方案。 两行代码删除相同的错误这里是完整报告的图像:https://prnt.sc/u1w9cb 这里是配置/app.php

  • 问题内容: 我正在研究为我的团队正在从事的项目(嵌入式Java)创建“项目模板”的可能性。我们希望使新开发人员不要为创建新项目而烦恼。我们团队中使用的所有工具都应 基本思想是应该有 一个命令 来设置项目和IDE,以提供以下功能: 创建一个新的Java项目,包括Eclipse项目文件。 创建一个构建脚本(需要在IDE之外工作)。 在构建脚本中包括部署选项。 设置一个git项目。 设置PMD以与集成在

  • 如何在Android Studio 0.9.9中更改项目根目录的名称。我在这里阅读了其他解决方案,但对我来说没有任何效果。我可以更改/重构包名称,但不能更改根目录的名称。我在这里找到了另一个解决方案,即更改文件中的名称,但没有成功。更改名称后,我尝试了清理、重建等,但没有任何东西反映Android Studio中的更改。“PROJECT NAME/ROOT DIRECTORY NAME”没有REF

  • 关于maven项目结构,我有两个问题: 1)我正在创建一个maven多模块项目,并且想知道是否可以将模块的所有公共依赖项放在父POM中?这是正确的做法吗? 2)如果我正在创建一个包含所有web.xml和JSP文件的maven webapp项目,那么web控制器、侦听器和模型对象应该驻留在哪里?在一个单独的maven jar项目中还是在同一个webapp项目中?