如何检索程序集的限定类型名称?

dan*_*die 4 c# asp.net powershell configuration web-config

如何生成程序集限定类型名称?

例如,在配置成员资格提供程序时,我必须在"type"属性中为"SqlMembershipProvider"(在此示例中,我从某处复制以下配置)提供程序集限定类型名称.

如何生成该程序集限定类型名称?是否必须通过检查装配类型每次手动输入?

<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider"
           type="System.Web.Security.SqlMembershipProvider,
           System.Web, Version=2.0.0.0,
           Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
           connectionStringName="LocalSqlServer"/>
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

[更新]:更简单的PowerShell版本

PS>([System.String]).AssemblyQualifiedName
System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Run Code Online (Sandbox Code Playgroud)

Gul*_*zim 8

这是一个非常方便的工具(带有源代码的shell扩展),用于通过右键单击任何程序集将完全限定名称复制到剪贴板.

更新:看到dance2die的评论后,考虑将一个示例PowerShell脚本放在一起,将类型名称导出到csv文件.

> [System.Reflection.Assembly]::LoadWithPartialName("System.Web")

> [System.Web.Security.SqlMembershipProvider] | select {$_.UnderlyingSystemType.AssemblyQualifiedName } | export-csv c:\typenames.csv
Run Code Online (Sandbox Code Playgroud)

使用C#,如果要生成具有所有引用集的程序集限定类型名称,则可以使用反射轻松构建测试脚本.

using System;
using System.Reflection;
........

Type ty = typeof(System.Web.Security.SqlMembershipProvider);
string fullname = ty.AssemblyQualifiedName;
//"System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Run Code Online (Sandbox Code Playgroud)