在silverlight中是否有相应的功能?
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies (v = VS.95) . aspx
还有别的方法吗?
这里有一篇关于如何在混合下设计时这样做的文章…但是在运行时呢?
http://joshsmithonwpf.wordpress.com/2010/01/06/the-ultimate-hack-for-silverlight-in-blend/看起来不太可能:
在Silverlight 3中获取运行时程序集
http://forums.silverlight.net/p/22050/77847.aspxhttp://forums.silverlight.net/t/22050.aspx/1?Get + + + + +组件加载列表
我也没有让它在我的SL4项目中工作,但我试图将当前域转换为动态的,它可以工作,一个虚拟的解决方案,直到我让VS2010认识到我使用正确的mscorlib。
假处理:
var loadedAssemblies = ((dynamic)Thread.GetDomain()).GetAssemblies()as Assembly[];
这个问题最初要求的是相当于Silverlight中的Assembly.GetExecutingAssembly().GetAvailableTypes()
的东西,所以这是我的第一个答案。
Silverlight支持反射
-
Assembly.GetExecutingAssembly()
在Silverlight中支持,包括Windows Phone 7和XBox 360。 -
Assembly.GetExportedTypes()
和Assembly.GetTypes()
在Silverlight中都支持,包括Windows 7和XBox 360。
查看文档并选择"Silverlight"以版本为准。
更新-
AppDomain.CurrentDomain
在Silverlight 3和4中是支持的。 -
AppDomain.GetAssemblies()
在Silverlight 4中是支持的。
最简单的方法是升级到Silverlight 4,而不是绕道而行。