Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create an assembly in memory

Tags:

c#

assemblies

I'd like to create an assembly in memory, using an using the classes in Reflection.Emit

Currently, I can create the assembly and get it's bytes using something like

AssemblyBuilder builder =
   AppDomain.CurrentDomain.DefineDynamicAssembly(..., 
      AssemblyBuilderAccess.Save);

... create the assembly ...

builder.Save(targetFileName);

using(FileStream fs = File.Open(targetFileName, FileMode.Open))
{
   ... read the bytes from the file stream ...
}

However, it does so by creating a file on the local filesystem. I don't actually need the file, just the bytes that would be in the file.

Is it possible to create the assembly without writing any files?

like image 992
Jared I Avatar asked Oct 26 '22 12:10

Jared I


1 Answers

This is not possible at this point in time. The C# team is planning a "compiler as a service" feature that hopefully will be included in C# 5.0.

like image 103
Stephen Cleary Avatar answered Nov 02 '22 17:11

Stephen Cleary