Skip to content

[mono] Full support for System.Reflection.Emit #37794

@alexischr

Description

@alexischr

Mono's support for System.Reflection.Emit must be brought to the same level as CoreCLR's. From the top down, this requires:

Known Issues

  • No lexical scope support for MethodBuilder/ILGenerator: Our implementation does not support using namespaces for resolving locals, and BeginScope()/EndScope() are no-ops currently.
  • The following methods do not have tests/meaningful usage within dotnet/runtime:
    • ModuleBuilder.GetFieldToken
    • ModuleBuilder.GetSignatureToken(byte[], int)
    • ILGenerator.UsingNamespace
    • ILGenerator.EndScope

Known issues with sharing code

  • interface ISymbolWriter is both tied heavily with coreclr (see CreateISymWriterForDynamicModule) and ILGenerator/MethodBuilder.
  • Mono's ModuleBuilder must match memory layouts with the Mono internal struct MonoModule.

Discussion

We can share progress/ask questions in the comments.

Metadata

Metadata

Assignees

Labels

area-VM-reflection-monoReflection issues specific to MonoVMruntime-monospecific to the Mono runtimetrackingThis issue is tracking the completion of other related issues.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions