c# - 継承 - me gettype()




アセンブリの修飾型名を取得するにはどうすればよいですか? (4)

アセンブリ修飾型の名前を生成するにはどうすればよいですか?

たとえば、メンバーシッププロバイダを構成する場合、 "SqlMembershipProvider"(この例では、以下の構成をどこかからコピーしています)のアセンブリ修飾名を "type"属性で指定する必要があります。

どのようにアセンブリ修飾型の名前を生成しますか? アセンブリの種類を調べることによって、毎回手動で入力する必要がありますか?

<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>

[更新]より簡単なPowerShellのバージョン

PS>([System.String]).AssemblyQualifiedName
System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

これは、任意のアセンブリを右クリックして完全修飾名をクリップボードにコピーするのに便利便利なツール (ソースコード付きシェル拡張)です。

更新 :dance2dieからのコメントを見た後、サンプルのPowerShellスクリプトを組み合わせて、タイプ名をcsvファイルにエクスポートすることを考えました。

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

> [System.Web.Security.SqlMembershipProvider] | select {$_.UnderlyingSystemType.AssemblyQualifiedName } | export-csv c:\typenames.csv

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"

その情報を見つける最も簡単な方法は、 リフレクタを使用してアセンブリをロードし、アセンブリのマニフェストからNameをコピーすることです。 上記のウィンドウでアセンブリを選択すると、マニフェスト情報がリフレクタの下部ペインに表示されます。


OK Gulzarのように使用してくださいNazimは書いた

$ String typeName = typeof(AssemblyName.ClassName).AssemblyQualifiedName);

type.getType();で使用できる完全な名前を指定します。 それは私と一緒に働いて、もうnullはない


あなたのコマンドにadd型を使う:

add-type -assemblyname "system.example"






web-config