淘宝自定义模板,C#创建自定义模板向导,自定义模版中的参数

本主题显示如何创建一个自定义向导,该向导在创建项目之前打开一个 Windows 窗体。此窗体允许用户添加自定义参数值,此值随后在创建项目的过程中被添加到源代码中。主要步骤如下所示,其中每一步都有详细解释。
创建自定义模板向导
1. 创建实现 方法


名称
说明
BeforeOpeningFile
在打开模板中的项之前运行自定义向导逻辑。
ProjectFinishedGenerating
当项目已完成生成时运行自定义向导逻辑。
ProjectItemFinishedGenerating
当项目项已完成生成时运行自定义向导逻辑。
RunFinished
当向导已完成所有任务时运行自定义向导逻辑。
RunStarted
在模板向导运行的开头运行自定义向导逻辑。
ShouldAddProjectItem
指示是否应将指定的项目项添加到项目中。

那么我们主要应用的就是RunStarted(在模板向导运行的开头运行自定义向导逻辑。)方法,我们先看看他的参数。
automationObject
类型:System.Object 模板向导正在使用的自动化对象。
replacementsDictionary
类型:System.Collections.Generic.Dictionary(Of String, String) 要替换的标准参数的列表。
runKind
类型:Microsoft.VisualStudio.TemplateWizard.WizardRunKind WizardRunKind 指示向导运行的类型。
customParams
类型:System.Object() 在项目中用来执行参数替换的自定义参数。

replacementsDictionary(要替换的标准参数的列表)我们利用他来添加或替换项目中的参数,用runKind来判断用户创建的是项目还是项。
代码如下:
using System;
using System.Collections.Generic;
using EnvDTE;
using Microsoft.VisualStudio.TemplateWizard;

namespace Happy.TemplateWizard
{
public class IWizardImplementation : IWizard
{
///
/// 在打开模板中的项之前运行自定义向导逻辑。
///

/// 将要打开的项目项。

public void BeforeOpeningFile(ProjectItem projectItem)
{
}
///
/// 当项目已完成生成时运行自定义向导逻辑。
///

/// 已完成生成的项目

public void ProjectFinishedGenerating(Project project)
{

}
///
/// 当项目项已完成生成时运行自定义向导逻辑。
///

/// 已完成生成的项目项

public void ProjectItemFinishedGenerating(ProjectItem projectItem)
{

}
///
/// 当向导已完成所有任务时运行自定义向导逻辑。
///

public void RunFinished()
{
}
///
/// 在模板向导运行的开头运行自定义向导逻辑。
///

/// 模板向导正在使用的自动化对象

/// 要替换的标准参数的列表

/// WizardRunKind 指示向导运行的类型

/// 在项目中用来执行参数替换的自定义参数

public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
try
{
replacementsDictionary.Add("$UserInfo$", "测试值");//你还可以运行窗口等等
}
catch
{
//出错了。。。
}
}
///
/// 指示是否应将指定的项目项添加到项目中。
///

/// 项目项的路径

/// 如果应将项目项添加到项目中,则为 true;否则为 false
public bool ShouldAddProjectItem(string filePath)
{
return true;
}
}
}
好了代码实现了,接下来就要用强名称对程序集进行签名(必须签名)
我们就用Visual Studio来做吧,打开项目属性→签名→勾选为项目签名 如下图

C#创建自定义模板向导,自定义模版中的参数淘宝自定义模板


在新建签名,这个步骤我就不说了…..
编译完成后我们用Visual Studio的命令来添加到全局缓存中命令:gacutil /i 程序集名称(包含完整路径、扩展名)
提示成功后我们在使用SN –T 程序集名称(包含完整路径、扩展名) 来查看公钥值
等到公钥后我们就去修改模版吧,我们就拿Visual Studio以有的来修改吧。
打开安装目录的Common7\IDE\ItemTemplatesCache\Web\CSharp\2052\Class.zip/Class.vstemplate
后面添加

你的程序集名称(不包含扩展名), Version=1.0.0.0(版本号), Culture=Neutral, PublicKeyToken=fa3902f409bb6a3b(公钥)
Happy.CustomWizard.IWizardImplementation (继承IWizard接口的类完整名称)

如图
C#创建自定义模板向导,自定义模版中的参数淘宝自定义模板

保存后在去看看效果吧。。。。

Tags:  自定义模板变量 ppt自定义模板 自定义模板 淘宝自定义区模板 淘宝自定义模板

延伸阅读

最新评论

发表评论