Kon*_*kus 9 .net c# clr class-library mscorlib
有人知道如何使用CLR定制BCL吗?如何发现现有CLR和BCL之间最基本的联系并重用它们?
以下是我到目前为止:http://lightnet.codeplex.com
小智 6
查看Script#,这是一个用于将C#编译为Javascript的工具链,该工具由Microsoft的某个人编写,内部用于他们的一些webapps.这个人通过使用/ nostdlib进行编译并引用他最低限度重新实现的BCL来实现它.生成程序集后,工具会通过它反射并将其转换为Javascript.他使用重新实现的BCL来实现准确的调试,并防止您使用在Javascript上下文中没有意义的BCL功能.它看起来与您的代码现在非常相似,包括大多数类本身都是空的或只有一些空方法的事实.这是因为BCL的类/方法的实现是在Javascript中.
这可能是一个专利雷区.我从最近的甲骨文诉讼中了解到这一点:如果你实施BCL规范,你只会受到社群承诺的约束(尽管与Java不同,你不需要同时实施CLR.是的,微软的专利豁免更多自由主义而不是Java的).我认为这是一个很棒的想法,可以在很多情况下使用; 我可以想象自己使用这个而不是DSL,或者不是嵌入脚本语言,而是在我的插件架构中迂回担心代码安全性.但从微软的角度考虑一下 - 如果他们允许对不合规的BCL进行专利豁免,那么阻止某人将其专有产品称为"不合规的BCL实施"并获得豁免的是什么呢?
鉴于评论,听起来你想要使用自定义BCL的股票CLR.
我非常怀疑这会奏效.CLR和BCL之间可能会有很多关系 - 他们会做出一定的实施期望,并依赖它们,而不是不合理.例如,CLR可能依赖于您不了解的某些内部类型.
如果你设法让股票CLR与你自己的BCL实现一起工作,我会感到非常惊讶,尽管实现自定义BCL以使用Mono运行时可能要简单得多 - 至少在那里你可以调试正在发生的事情.你遇到了问题.