T4模板使用(四):路径及配置获取
本篇主要介绍一下优化选项和配置相关的获取。
路径获取
解决方案根目录:
string solutionsPath = Host.ResolveAssemblyReference("$(SolutionDir)");//解决方案路径
t4所在工作目录:
string projectPath = Host.ResolveAssemblyReference("$(ProjectDir)");//当前路径
路径的操作可以使用c#的Path类。
webconfig/appconfig配置获取
获取连接字符:
//修改内容
string keystr = "N";//数据库链接配置节点的 name
//获取类库下的appConfig配置
string appConfigPath = Path.Combine(Host.ResolveAssemblyReference("$(ProjectDir)"),"App.config");
//获取项目下的webConfig配置
string webConfigPath = Path.Combine(Host.ResolveAssemblyReference("$(SolutionDir)"),"Web.config");
//configmap类 如果是appconfig 切换路径即可
var configMap = new ExeConfigurationFileMap { ExeConfigFilename = webConfigPath };
//获取配置
var configInfo = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
//获取链接字符
var constr ="";
foreach(ConnectionStringSettings coninfo in configInfo.ConnectionStrings.ConnectionStrings){
if(coninfo.Name == keystr)
{
constr = coninfo.ConnectionString;
}
}
其他配置从configInfo里取,configInfo是返回的Configuration类,存取方法可以自行搜索
优化相关
当需要生成的东西很多时,可以将其他文件导入到一个主文件中进行控制。在主文件中定义全局变量,这样可以做到只修改一个文件。