“注射”将运算符转换为现有类型
Scriptsharp 使用 mscorlib 0.7.0.0,它在 int32 上有一个隐式运算符 System.Number。我理解它存在的原因,尽管我认为编译器可以以另一种方式处理转换。
现在我无法在使用标准 .Net mscorlib 的其他项目(前单元测试)中使用生成的 scriptsharp .Dll。 > 3.0。
> Method not found System.Int32._opImplicit(int32).
有没有办法通过反射“注入”该运算符?
我之前的问题给我带来了进一步的错误,但是这个....
Scriptsharp uses mscorlib 0.7.0.0 which has an implicit operator System.Number on an int32. I understand the reason why it's there although I imagine that the compiler can handle the conversion in another way.
Now I can't use the generated scriptsharp .Dll in an other project (ex unit testing) that uses the standard .Net mscorlib. > 3.0.
> Method not found System.Int32._opImplicit(int32).
Is there a way to "inject" that operator through reflection?
My previous question brought me a bug step further, but this one....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法修改已加载到应用程序域中的类型。
我认为您可以执行此操作的唯一方法是修改 mscorlib.dll,然后使用该修改后的版本。 Mono Cecil 库可以让您做到这一点。虽然它需要你处理CIL。
You can't modify types that are already loaded into an appdomain.
The only way I think you could do this is to modify mscorlib.dll and then use that modified version. The Mono Cecil library allows you to do exactly that. Although it requires you to deal with CIL.