Hi,

We are using mono Cecil to inject new methods in some of our libraries
before building them. Recently we are experiencing problems in method
references with generic parameters and after checking out our code
more thoroughly, we have seen that the methods that fail differ
between the versions before and after being written.

For example, one failing method reference after calling
AssemblyDefinition.Write is System.Boolean
Namespace.Class::ListIsNullOrEmpty<T>(System.Collections.Generic.List`1<T>),
but after writing the assembly, we read it again and we see that the
full name now is System.Boolean
Namespace.Class::ListIsNullOrEmpty<T>(System.Collections.Generic.List`1<!!
0>).

Debugging the method reference and the code of Mono.Cecil we see that
the name of the generic parameter in System.Collections.Generic.List`1
is lost, and thus, it is shown as !!0.

We don“t know already if it is because we are doing something wrong
when creating those method references, but we would like to know if
someone has faced the same problem becuase it is a bug in Mono.Cecil.
we will try to dive into the code to get further details about the
problem, but as we are not very familiar with the Mono.Cecil code, any
help about where to look at would be much appreciated.

Thanks in advance,

Jose Antonio

-- 
--
mono-cecil

Reply via email to