如何使用C#中的美元符号引用标识符?

Mar*_*tin 9 c# ikvm scala

我正在尝试使用由scala代码编译的jar文件中的ikvmc生成的DLL(是的,我的日子很棒).Scala编译器似乎生成包含运算符重载的美元符号的标识符,而IKVM使用生成的DLL中的那些(我可以在Reflector中看到它).问题是,美元符号在C#代码中是非法的,因此我无法引用这些方法.

有办法解决这个问题吗?

And*_*per 6

您应该能够使用反射访问时髦的方法.不是一个好的解决方案,但至少它应该工作.根据DLL中API的结构,可以创建围绕方法的包装器来本地化反射代码.然后从你的其余代码中调用漂亮的包装器.

另一种方法是破解目标DLL中的IL并更改标识符.或者在你自己的代码上做一些后期构建IL-hacking.