是否可以在不使用本机代码的情况下构建自定义 mscorlib.dll(允许 pinvoke :-)?
这个周末我做了一个小实验,看看做起来有多难,并且遇到了以下问题:
- 我在我的 mscorlib 版本中添加了一个类 System.Static,但出现 TypeLoadException 并显示无法从“mscorlib”加载类型“System.Static`1”的消息,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 . 因此,它似乎仍在以某种方式加载 MS 库。如何避免这种情况(我已经在使用 /nostdlib 开关)?
- 当我将我的 mscorlib 命名为“mycorlib”时,我遇到了 System.Object 必须有父类的错误
- 如果我有泛型类型 T 并且我正在这样做
new T()
,则它由 c# 编译器翻译Activator.CrateInstance<T>()
,在 MS 实现中调用RuntimeTypeHandle.CreateInstance(...)
它是本机方法。我可以从我的 mscorlib 中调用它还是它包含在 MS 提供的 mscorlib 中?
我的目标是测试编写我的 int、double、string 和其他标准类型版本的可能性。我想使用 MS CLR,但只提供我的托管代码类。
是否可以?