私は、C#で.NETアセンブリローダーを構築しています。これは、 "実験"/.NET内部操作の詳細を学ぶためです。私のようなタイプを導出することにより、リフレクションAPIを実装しました:なぜ `Assembly`と` Module`には公的に定義されたコンストラクタがありませんか?
- RuntimeType:タイプ
- RuntimeFieldInfo:のFieldInfo
- RuntimeMethodInfo:METHODINFO
- RuntimeParameterInfo:ParameterInfo
- RuntimeConstructorInfo:ConstructorInfo
- RuntimePropertyInfo: PropertyInfo
残念ながら、次は何の公的にアクセス可能なコンストラクタを持っていないので、私はトラブルを抱えているので、私はそれらから派生することはできません。
- アセンブリ(密閉されていない - AssemblyBuilderが内部的に由来している)
- モジュール(ではありません密封された - ModuleBuilderは内部
は私がRuntimeType.get_Assembly
とRuntimeType.get_Module
から戻るために何かを必要とする)ことに由来しています。提案?創造的になる - 私はしなければならなかった。 ;)RuntimeTypeHandle
のインスタンスを作成するには、ポインタの安全でないキャストがジョブを完了させますが、ここではそれほど簡単ではありません。
これは特に問題ですが、ロードされたタイプのILをきれいに印刷しようとしています。構築されたジェネリックについては、Type.FullName
プロパティはAssemblyQualifiedName
プロパティを介した汎用パラメータを含み、Assembly
プロパティに依存します。
これが当てはまる場合、.NET 4の新機能または.NET 2の後に削除されます。 –
また、多くの種類の.NET Framework実装では*型から派生しています。しかし、 'Assembly'と' Module'型のために、それらはそのまま使用します。 –
@ 280Z28、私はちょうど確認しました。 – JaredPar