我正在尝试将Silverlight支持添加到我最喜欢的编程语言Nemerle中.
Nemerle,在编译过程中,主要通过两个步骤通过反射加载所有类型
1-)使用Assembly.LoadFrom加载程序集2-)使用Assembly.GetTypes()来获取类型
然后在编译结束时,它使用Reflection.Emit发出已解析的类型.
此过程适用于所有程序集,包括除Silverlight的mscorlib之外的Silverlight程序集.
在c#中,这失败了:
var a = System.Reflection.Assembly.LoadFrom(@"c:\mscorlib.dll");
Run Code Online (Sandbox Code Playgroud)
但这传递了:
var a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(@"c:\mscorlib.dll");
Run Code Online (Sandbox Code Playgroud)
Bu在后者中,a.GetTypes()抛出一个异常,说System.Object的父节点不存在.
有出路吗 ?
silverlight reflection.emit nemerle mscorlib assembly.reflectiononly