You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dnlib is great, it offers complete representation of CLI assemblies. But it has some issues, mainly with regards to resolving built-in types in modern .net (.net5,6,7 - 0xd4d/dnlib#453). Some dirty hack is applied here to ensure types are loaded, but it does not work for all types and in all versions of .net. Test dnWalker.Tests.Examples.CaptureOutputTests2 fails for .net6.0 a .net7.0 due to this issue.
Make the fix work for all versions? Fix the custom implementation of dnlib.DotNet.IResolver or make a better hack to resolve currently unresolved types.
Resolve the issue within dnlib itself
Use another library for reading CLI assemblies?
Built-in System.Reflection could be a good choice, because it would make referencing built-in types much easier (with the typeof() expression) . But it does not parse instructions as dnlib does, some kind of instruction stream parser would have had to be created. Also the tested assemblies should not be loaded into the appdomain directly due to safety issues, only in read-only mode - this could make the before mentioned advantages void.
If another library is used, it could prove better to setup custom abstraction layer for types, methods, fields etc.
The text was updated successfully, but these errors were encountered:
dnlib is great, it offers complete representation of CLI assemblies. But it has some issues, mainly with regards to resolving built-in types in modern .net (.net5,6,7 - 0xd4d/dnlib#453). Some dirty hack is applied here to ensure types are loaded, but it does not work for all types and in all versions of .net. Test
dnWalker.Tests.Examples.CaptureOutputTests2
fails for .net6.0 a .net7.0 due to this issue.dnlib.DotNet.IResolver
or make a better hack to resolve currently unresolved types.Built-in
System.Reflection
could be a good choice, because it would make referencing built-in types much easier (with thetypeof()
expression) . But it does not parse instructions as dnlib does, some kind of instruction stream parser would have had to be created. Also the tested assemblies should not be loaded into the appdomain directly due to safety issues, only in read-only mode - this could make the before mentioned advantages void.If another library is used, it could prove better to setup custom abstraction layer for types, methods, fields etc.
The text was updated successfully, but these errors were encountered: