gpt4 book ai didi

.net - 替换系统命名空间中的类

转载 作者:行者123 更新时间:2023-12-03 22:40:13 25 4
gpt4 key购买 nike

我目前正在努力将我的 .NET 操作系统破解为在 MS.NET/Mono 之上运行(以前它只运行裸机),但我遇到了一个小问题。我需要实现我自己的 System.Console 来与我的服务基础设施对话,如果没有 1) 不链接到 mscorlib(这样做会很糟糕),或者 2) 使用 NotQuiteSystem,我就找不到替换它的好方法我的替换的命名空间,这会破坏兼容性。

有没有一种机制可以让我在不做这些事情的情况下干净地替换 System 类?

编辑:一种想法是使用 Mono.Cecil 将 System.Console 的引用重写为 Renraku.System.Console 或其他类似的东西,但如果可能的话,我更愿意在框架内工作。

最佳答案

您应该查看免费工具 PostSharp .它允许您在设计时通过自动修改 MSIL 来更改现有的 .Net 程序集。
this page有关 PostSharp 中编译时编织的更多信息。和 this page有关加载时编织的信息(在程序集加载到内存之前的运行时发生)。
对于运行时编织(在运行时修改现有方法),请查看 LinFu .

[Except from page]

... you can use LinFu.AOP to dynamically intercept any method on any type, regardless of whether or not the method is declared virtual or non-virtual. You’ll also be able to dynamically intercept (and even replace) methods declared on sealed types, in addition to any static methods that are declared on that type.

[/Except from page]

关于.net - 替换系统命名空间中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2077613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com