“注射”将运算符转换为现有类型

发布于 2024-12-15 17:49:07 字数 436 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的背包 2024-12-22 17:49:07

您无法修改已加载到应用程序域中的类型。

我认为您可以执行此操作的唯一方法是修改 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文