关于c#:如何在t4模板中使用app.config中的自定义部分

How to use custom sections in app.config from a t4 template

我试图从VS2010中的T4模板访问app.config文件中的自定义节,但无法加载定义自定义节的程序集。

我正在使用配置访问器获取该部分(请参阅http://skysanders.net/subext/archive/2010/01/23/accessing app.configweb.config-from-t4-template.aspx)。

App.CONFIG:

1
2
3
4
5
6
7
8
9
<configSections>
    <section name="MyProviders" type="System.Web.Security.MySection, MyAssembly" />
</configSections>

<MyProviders default="SQLMyProvider">
  <providers>
   
  </providers>
</MyProviders>

在.tt文件中调用此行:

1
MySection section = (MySection)config.Configuration.GetSection("MyProviders");

出现此错误:

0

.t t文件引用程序集,项目也引用程序集,但这似乎对加载配置节没有帮助。我尝试将myselection类实现为TT代码块,但也不能在app.config中使用该类。

有什么想法吗?


我认为需要完整的程序集名称(版本、区域性、publicKeyToken)

1
type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"

你需要把MyAssembly放在GAC或只是放在Visual Studios的PublicAssemblies文件夹中才能找到它。后者的位置是\Common7\IDE\PublicAssemblies