アセンブリまたはモジュール/クラスの動的コピーを作成することはできますか? AssemblyBuilder
/を使用して最初から動的アセンブリまたはモジュールを作成する方法を簡単に見つけることができました(ここでModuleBuilder
見られるように) が、既存のアセンブリまたは型のコピーをそれぞれのビルダー型として作成する方法はありますか?
編集 1
たとえば、必須Program
のクラスとMain
メソッドを備えた標準のコンソール アプリケーションがあり、「A」という名前の別のクラスをプロジェクトに追加するとします。私の目標は、またはそのようなものを使用して、メソッドA
内でクラスの動的コピーを作成することです。Main
ModuleBuilder
編集 2
class のコピーを作成したい理由はA
、メソッド、フィールド、プロパティなどを含むが、動的に作成されたclass の正確な複製が必要だからです。A
私が望んでいないのは、TypeBuilder/CodeDom を使用して型とそのすべてのメンバー (メソッド、フィールド、プロパティなど) を手動で作成する必要があることです。クラスとその内部動作またはクラスは、この方法を使用して再現するのが大きくて面倒/不可能な場合があります。
うまくいけば、いくつかの疑似コードで私が探しているものを説明できます:
// create AssemblyBuilder using the assembly of the A class so you end up with a
// dynamic copy of the assembly
AssemblyBuilder ab = new AssemblyBuilder(Assembly.GetAssembly(typeof(A)));
// get the Type as a TypeBuilder from the AssemblyBuilder
TypeBuilder tb = ab.GetModule("Test.exe").GetType(typeof(A).FullName);
私は基本的にAssembly
、 をAssemblyBuilder
またはType
としてボックス化したいだけTypeBuilder
です。また、アセンブリを保存できる必要もありません。