© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•4y ago•
10 replies
Ruttie

✅ Source Generator, dynamic assembly not added.

I have the following code:
            var assemblyName = new AssemblyName("MyAssembly");
            var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
            var moduleBuilder = assemblyBuilder.DefineDynamicModule("MyModule");

            var typeBuilder = moduleBuilder.DefineType("MyNamespace.MyType", TypeAttributes.Public);
            var methodBuilder = typeBuilder.DefineMethod("MyMethod", MethodAttributes.Public | MethodAttributes.Static);
            var ilGenerator = methodBuilder.GetILGenerator();

            // Generate some IL code
            ilGenerator.Emit(OpCodes.Ldstr, "Hello, world!");
            ilGenerator.Emit(OpCodes.Call, typeof(Console).GetMethod("WriteLine", new[] { typeof(string) }));
            ilGenerator.Emit(OpCodes.Ret);

            typeBuilder.CreateTypeInfo();
            var sourceText = "namespace MyNamespace { public static class MyClass { public static void MyMethod() { MyType.MyMethod(); } } }";
            context.AddSource("MyFile.cs", sourceText);
            var assemblyName = new AssemblyName("MyAssembly");
            var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
            var moduleBuilder = assemblyBuilder.DefineDynamicModule("MyModule");

            var typeBuilder = moduleBuilder.DefineType("MyNamespace.MyType", TypeAttributes.Public);
            var methodBuilder = typeBuilder.DefineMethod("MyMethod", MethodAttributes.Public | MethodAttributes.Static);
            var ilGenerator = methodBuilder.GetILGenerator();

            // Generate some IL code
            ilGenerator.Emit(OpCodes.Ldstr, "Hello, world!");
            ilGenerator.Emit(OpCodes.Call, typeof(Console).GetMethod("WriteLine", new[] { typeof(string) }));
            ilGenerator.Emit(OpCodes.Ret);

            typeBuilder.CreateTypeInfo();
            var sourceText = "namespace MyNamespace { public static class MyClass { public static void MyMethod() { MyType.MyMethod(); } } }";
            context.AddSource("MyFile.cs", sourceText);

When trying to compile a project that references the source generator, I get a
CS0103
CS0103
, saying "The name 'MyType' does not exist in the current context".
Any ideas on how to fix?
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Source generator not working?
C#CC# / help
12mo ago
source generator
C#CC# / help
3y ago
❔ Source generator & protobuf
C#CC# / help
4y ago
✅ MVVM Source Generator not copying attributes
C#CC# / help
3y ago