1
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="C:\Users\ic019672\Documents\visual studio 2015\Projects\PreTemplateLogic\PreTemplateLogic\bin\Debug\ReadfromCSV.dll" #>
<#@ import namespace="PreTemplateLogic" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Runtime.Remoting.Messaging" #>
<#@ import namespace="Microsoft.VisualStudio.TextTemplating" #>
<#@ parameter type="System.String" name="Pprty" #>
<#@ output extension=".cs" #>
using System;
using System.Collections.Generic;
namespace TemplateLogic
{
public partial class GeneratedClass
{
Dictionary<string, Dictionary<string, string>> dataKey = new Dictionary<string, Dictionary<string, string>>();
public void GenerateParentContainer(string cntrlName)
{
<#
Dictionary<string, Dictionary<string, string>> dataKey = new Dictionary<string, Dictionary<string, string>>();
dataKey = PreTemplateLogic.ReadfromCSV.ReadcsvtoDictionary();
Dictionary<string, string> dc = dataKey["ObjectName"];
string parntKey = "Parent";
string nameKey = "Name";
string valueKey = "Value";
string x = PreTemplateLogic.ObjectRepository.cntrlName;
string[] CntrlPrpty = ReadObjectrepository();
#>
Console.WriteLine("<#= CntrlPrpty[0] #>");
}
}
}
<#+
public string[] ReadObjectrepository()
{
try
{
string[] properties;
string csvPath = ObjectRepository.xmlFile;
if (File.Exists(ObjectRepository.xmlFile))
{
using (StreamReader reader = new StreamReader(File.OpenRead(csvPath)))
{
string line = reader.ReadLine().ToString();
properties = line.Split(',');
}
return properties;
}
return null;
}
catch (Exception e)
{
throw;
}
}
#>
這裏更新參數就是我要達到什麼樣的:模板代碼生成不是從文件
- 我需要在運行時生成代碼。
- 代碼的一些參數是從外部文件中獲取的(它經常更新)。
- 在調用此模板時,它需要從文件中提取參數並生成代碼。
我從另一個解決方案使用自定義主機從外部調用模板。 ReadcsvtoDictionary
將一些數據讀取到字典datakey
,這是T4模板在運行時所需的。 現在,即使我更新這是由ReadcsvtoDictionary
讀取該文件,並再次調用模板,我沒有得到texttemplate
獲得新的數據..
你想在這裏解決什麼問題?忽略了你解決問題的嘗試以及它的問題。 – AnthonyLambert
這是我想要實現的。1.我需要在運行時生成代碼。 2.代碼的一些參數是從外部文件中獲取的(它經常更新)。 3.在調用此模板時,它需要從文件中提取參數並生成代碼。 –
請幫忙嗎? –