2016-02-26 99 views
0

我已经创建了一个多项目模板,但是我想根据用户输入编辑存储在每个项目中的一些值。我通过向导来模拟单个项目,但无法为多个项目做。具有多个项目模板的IWizard

这是在RunStarted方法向导类

wizardFrm = new WizardForm(); 
wizardFrm.ShowDialog(); 
// call property from wizard form to read user input values 
strProjectPrefix = wizardFrm.ProjectPrefix; 
strwebCall = wizardFrm.WebCall; 
strPrefix = wizardFrm.Prefix; 
strServiceName = wizardFrm.ServiceName; 
strTransmit = wizardFrm.Transmit; 
strService = wizardFrm.Service; 
strUniqueID = wizardFrm.UniqueID; 
strRecordID = wizardFrm.RecordID; 
strQueued = wizardFrm.Queued; 
strEmailSubject = wizardFrm.EmailSubject; 
strEmailCat = wizardFrm.EmailCat; 
strMethod = wizardFrm.Method; 
strTemplate = wizardFrm.Template; 
// sets the Values 
replacementsDictionary.Add(key: "$WebCall$", value: strwebCall); 
replacementsDictionary.Add(key: "$projectPrefix$", value: strProjectPrefix); 
replacementsDictionary.Add(key: "$prefix$", value: strPrefix); 
replacementsDictionary.Add(key: "$serviceName$", value: strServiceName); 
replacementsDictionary.Add(key: "$transmitted$", value: strTransmit); 
replacementsDictionary.Add(key: "$service$", value: strService); 
replacementsDictionary.Add(key: "$uniqueID$", value: strUniqueID); 
replacementsDictionary.Add(key: "$recordID$", value: strRecordID); 
replacementsDictionary.Add(key: "$queued$", value: strQueued); 
replacementsDictionary.Add(key: "$emailSubject$", value: strEmailSubject); 
replacementsDictionary.Add(key: "$Category$", value: strEmailCat); 
replacementsDictionary.Add(key: "$method$", value: strMethod); 
replacementsDictionary.Add(key: "$uriTemplate$", value: strTemplate); 

这是我想在其中一个项目更改数值的一个

public const string PREFIX = "$prefix$"; 

我需要创建一个向导模板每个项目?或者有没有办法用一个向导来做到这一点?

问候

艾丹

回答

0

我设法得到这个工作,我需要一个childWizard.cs添加到WizardTemplate项目,则必须对子项目设置的值。

这是在主模板向导类下创建全局字典所需的代码。

globalDictionary = new Dictionary<string, string>(); 
globalDictionary.Add(key: "$WebCall$", value: strwebCall); 

而且在实现IWizard接口

replacementsDictionary.Add(key: "$WebCallchild$", value: WizardClass.globalDictionary["$WebCall$"].ToString()); 

一旦我加入项目类$ WebCallchild $这里我想更新的值,并添加下面的.vstemplate孩子向导文件为每个项目

<WizardExtension> 
    <Assembly> 
     LayerTemplateWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ea9d885401b51155 
    </Assembly> 
    <FullClassName>LayerTemplateWizard.IWizardChild</FullClassName> 
</WizardExtension> 

然后它允许我改变所有需要的值。

希望这有助于别人

艾丹