博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Silverlight 项目中获取程序集的引用信息
阅读量:6264 次
发布时间:2019-06-22

本文共 1208 字,大约阅读时间需要 4 分钟。

在完整的 .Net 环境下,如果要获取程序集的引用信息,可以使用下面的代码:

1
2
var 
assembly = Assembly.LoadFrom(assemblyFile);
var 
references = assembly.GetReferencedAssemblies();

得到的 references 对象是一个  数组, 这个对象包含了程序集的所有引用信息, 关于 AssemblyName 类的信息, 可以参考 。

众所周知, 获取程序集的引用信息对于插件式开发是非常重要的, 但是, 在 Silverlight 环境下, , 因此我们无法通过反射获取到程序集的引用信息。 不过幸运的是我们有开源的  项目, 而且 Cecil 已经开始完整的支持 Silverlight 了, 因此我们需要 Cecil 来获取程序集的引用信息。

首先我们需要获取 Cecil 的源代码并且编译成 Silverlight 类库,这是非常容易的。 只要, 下载最新版本的源代码, 然后将配置修改为 silverlight_release 或者 silverlight_debug 编译即可。

然后在我们的 Silverlight 项目中添加对 Cecil 的引用就可以使用了, 使用 Cecil 获取程序集的代码如下:

1
2
3
4
var 
entryPointPart = Deployment.Current.Parts.First(asmPart => asmPart.Source == assemblyName);
var 
entryPointResourceInfo = Application.GetResourceStream(
new 
Uri(entryPointPart.Source, UriKind.Relative));
var 
asmDef = AssemblyDefinition.ReadAssembly(entryPointResourceInfo.Stream);
var 
references = asmDef.MainModule.AssemblyReferences.ToArray();

这样获取到的 references 对象是一个 Mono.Cecil.AssemblyNameReference 数组, AssemblyNameReference 与 .Net 环境下的 AssemblyName 类似, 包含了程序集所有的引用信息。

所有文章遵循,要求署名、非商业 、保持一致。在满足的基础上可以转载,但请以超链接形式注明出处。

本博客已经迁移到 GitHub , 围观地址: 

本文转自张志敏博客园博客,原文链接:http://www.cnblogs.com/beginor/archive/2011/04/29/2032563.html
,如需转载请自行联系原作者
你可能感兴趣的文章
linux启动引导程序配置文件
查看>>
poj 2186: Popular Cows(tarjan基础题)
查看>>
Front_end - - JavaScript
查看>>
python3+requests:接口自动化测试(二)
查看>>
12月29日-作业
查看>>
c# yyyyMMdd,dd/MM/yyyy 类型字符串转换为datetime 类型
查看>>
docker-compose.yml的使用
查看>>
容易犯错的面试题
查看>>
django框架 restful规范 CBV源码分析
查看>>
jdk 配置(已验证,但是并不是完全相同)
查看>>
《代码敲不队》第九次团队作业:Beta冲刺与验收准备
查看>>
迭代器和生成器
查看>>
requests库入门05-参数类型
查看>>
go语言 windows 32位编译环境搭建
查看>>
我的家庭私有云计划-20
查看>>
手把手教你封装属于自己的Windows7安装镜像
查看>>
《作业指导书》的发布管理问题与解决办法
查看>>
55.Azure内容分发网络(CDN)
查看>>
MySQL常见错误代码(error code)及代码说明
查看>>
微软MVP社区巡讲
查看>>