一起谈.NET技术,反编译Silverlight项目

  在互联网上,每天都会有很多Silverlight项目发布,有的是开源,有的只是为了展示。在Silverlight学习的初期,多数都需要模仿学习,所以,发现一个Silverlight项目,能够查看其中的源代码是最好不过了。但是,Silverlight发布,只是发布资源包XAP,而所有资源都在这个XAP文件中,该如何查看其中的资源和代码呢?下面我将演示反编译的方法,演示中我将用Silverlight.Net首页Silverlight作为例子。

  1. 首先打开Silverlight.Net,该页面中包含一个Silverlight导航动画;

  2. 在浏览器中,点击右键,查看页面源代码;

  3. 在html源代码中搜索"xap",很快就能定位出xap的位置。

  我们看到<param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" />,该value就是xap在服务器端的位置。

  4. 我们使用同样的域名,来获取当前的xap文件。打开新的浏览器,在地址栏输入:http://www.silverlight.net/clientBin/showcasenav/ShowcaseNav.xap,这时浏览器会提示你下载该xap文件。

  5. 重新命名下载下来的文件ShowcaseNav.xap,为 ShowcaseNav.zip. 然后解压该压缩包到同一个目录. 在目录中,会看到该Silverlight使用的装配单文件,以及类库,和配置文件。

  6. 下面可以使用大家都比较熟悉的反编译软件,Reflector来查看DLL中的资源和代码文件。 下载Reflector: http://www.red-gate.com/products/reflector/

  7. 在Reflector中双击“MsCommunities.Silverlight.ShowcaseNav”,展开文件会看到DLL和Resources,其中Resources中包含这所有的xaml文件和图片文件,DLL中都是类库后台代码。

  8. 点击进入Reources目录,双击“MsCommunities.Silverlight.ShowcaseNav.g.resources”,在Reflector右边可以看到资源列表,选中任意一个想查看代码的文件,点击右键“Save As”,保存到本地,即可使用VS2008或者文本编辑软件查看代码内容。

  9. 对应着每个资源文件会有类库代码,双击“MsCommunities.Silverlight.ShowcaseNav.dll”,再双击“MsCommunities.Silverlight.ShowcaseNav”,可以查看各个类库文件,这里,我们选中"ItemAdvanceControl“,在Reflector右边即可看到反编译代码。

  至此,我们已经讲述如何反编译Silverlight项目,查看其源代码,下面我想介绍一款国外的共享软件,也可以达到上面同样的效果 - Silverlight SPY,下载地址:http://silverlightspy.com/silverlightspy/download-silverlight-spy/

  Silverlight SPY是一款共享软件,该软件可以自动获取XAP文件,帮你解析XAP中的文件,该软件和Reflector配合同样可以查看Silverlight项目源代码。同时,可以分解项目中的样式和UI,以及Isolated Storege展示给开发人员。我们在地址栏输入Silverlight.NET地址,即可得到,双击任何一个资源,在View窗口即可查看。

时间: 2024-07-30 08:31:46

一起谈.NET技术,反编译Silverlight项目的相关文章

反编译Silverlight项目

在互联网上,每天都会有很多Silverlight项目发布,有的是开源,有的只是为了展示.在Silverlight学习的初期,多数都需要模仿学习,所以,发现一个Silverlight项目,能够查看其中的源代码是最好不过了.但是,Silverlight发布,只是发布资源包XAP,而所有资源都在这个XAP文件中,该如何查看其中的资源和代码呢?下面我将演示反编译的方法,演示中我将用Silverlight.Net首页Silverlight作为例子. 1. 首先打开Silverlight.Net,该页面中包

一起谈.NET技术,使用 Silverlight Media Framework 构建自定义播放器

      流媒体已在网络上无处不在.似乎所有人(从新闻站点到社交网络再到隔壁的邻居)都在享受在线视频体验.由于用户群的不断攀升,大多数站点需要以一种值得信赖.用户友好的方式为其客户提供高品质视频,通常为高品质带宽感知 视频.       在线媒体传输体验的核心要素是播放器本身.播放器是用户与之发生交互的介质,它可以驱使用户获得在线体验的每一个要素.播放器如此备受关注,毫无疑问,基于 Web 的现代媒体播放器在实现时势必要比几年前的老款播放器复杂得多.因此,开发人员需要一个稳健的框架来构建播放器

一起谈.NET技术,WPF/Silverlight深度解决方案:目录

介于目前WPF/Silverlight技术资料在国内相当稀缺,仅有的也是一些很基础的教程.为了更深度的剖析WPF/Silverlight的技术内涵,解决开发过程中的疑难杂症,分解实际应用案例的特色细节,"WPF/Silverlight深度解决方案"系列由此孕育而生.整个系列的所有文章均为原创,由本人的个人开发经验结合相关资料编写而成,过程中难免有错漏或不妥当的地方还望各位读者友善的指出.我们的目标只有一个:WPF/Silverlight技术深度挖掘.如果您有符合本系列主题的内容想要与大

一起谈.NET技术,初识Silverlight 4及其架构

简介 Silverlight 4是今年早些时候发布的.这项技术为我们带来了许多革新.它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台.我们可以在此平台上开发可移植的,跨平台的,基于网络的应用程序,并且可以从不同的源头集成服务和数据.相比传统Web应用的界面,Silverlight应用的界面让人耳目一新.让人感觉像是Windows Form应用程序搬到了Web上. 为什么需要Silverlight 4 前面我们在开发Web应用的时候,碰到了许多技术上的难题,如

一起谈.NET技术,在VS2010项目中引用Lib静态库(以Openssl为例)

Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用. 首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32.ssleay32的Lib以及Dll文件,具体操作详见:http://blogger.org.cn/blog/more.asp?name

一起谈.NET技术,一个Silverlight的网页访问计数器

大家知道,SharePoint 2010支持客户端的对象模型访问,主要有三种方式: 1..net 的客户端对象模型,2.Javascript 的客户端对象模型 3.Silverlight的客户端对象模型,这里就简单实现一个Silverlight的网页计数器,来达到熟悉客户端对象模型的目的. 其实这个简单的访问计数器主要就是统计了页面刷新了多少次,逻辑很简单,当页面被load的时候,就将次数+1,将次数和页面的地址作为一个Item存放在一个SharePoint list中.下面介绍具体的步骤: 1

一起谈.NET技术,关于Silverlight战略转移新闻,我的思考

在说正题之前先来两段小八卦. Silverlight的老用户可能会知道,在微软发布该产品之初曾经推出一个名为Silverlight Streaming Service的免费服务,允许开发人员在上面Host自己的Silverlight应用程序和相关的媒体资源.推出此服务的目的当然意在吸引开发者对Silverlight技术的兴趣,我就曾经在上面放过两个小程序.但是大约在一年前,微软悄无声息的取消了该服务,据说是为了让位于Azure平台.实际上这已经可以看作一个微弱的信号,表明微软的战略确实有转变的倾

一起谈.NET技术,当Silverlight同时遇上TCP和HTTP的WCF服务

如果只是单一的TCP通信 如果你的silverlight应用因为一些特殊原因跟WCF通信时使用的不是Http协议,而是TCP协议,并且是Host到控制台上的.那么假设是下面这个简单的服务: 1,WCF中的主机服务代码如下: class Program {static void Main(string[] args) { ServiceHost host = new ServiceHost(typeof(HelloService)); host.Open(); Console.WriteLine(

一起谈.NET技术,ASP.NET 项目安装包制作(三)补充说明

相关文章:ASP.NET项目安装包制作.ASP.NET 项目安装包制作(二)数据库安装.其他组件的安装 一. 安装标题 按照前面的做法中,在安装过程中,如下图: 安装的标题是HxjWebSteup,这样的标题和产品名称显然是无法再实际项目中使用的. 这里我们需要通过设置安装项目的属性来设置一下就可以,选中HxjWebSetup项目按F4出来属性窗口,这个和右击项目属性是不一样的.如下图: 我们修改一下ProductName这个属性,变成Steven hu ProductName,我们再来看看安装