Support for System.Reflection.Metadata is under active development and should be considered as experimental with many issues (non exhaustive list):
- Generics (types/methods) are not supported yet
- Interfaces are not supported yet
- Many C# syntaxes/features not implemented
- Some C# syntaxes/features will generate code with mixed APIs (Mono.Cecil/System.Reflection.Metadata)
- Generated code formatting issues
- Incorrect mapping between code snippet/cecilified code (clicking in lines in one of them will most likely not select the correct corresponding lines)
- etc
That said you are more than welcome to try it out and suggest improvements. What is already working:
- Simple class/structs
- Instance/Static fields of primitive/custom types
- Instance/Static methods (no overloading)
- Custom attributes
- Basically anything covered by tests ;) (tests with [TestFixture(typeof(SystemReflectionMetadataContext))]. Note that test fixtures that also have [EnableForContext<SystemReflectionMetadataContext>] applied will only run the tests listed in the ctor of the attribute and an empty list means all tests are disabled (there are multiple tests like that).
Before opening issues, please discuss in our discord server.