动态加载Silverlight应用的dll文件(可实现插件功能)

文/代震军  出处/博客园

  在Mike Taulty的视频教程中有一个动态加载silverlight应用程序的DEMO,其程序运行效果如下:

 附件: 您所在的用户组无法下载或查看附件

    当加载dll之后:

 附件: 您所在的用户组无法下载或查看附件

  其实实现这个的效果本身并不难,主要是这个DEMO的应用场景可以让人做很大的扩展,比如说插
件机制等.

  好了,让我们看看如何实际去开发这个示例,以便让大家从流程和技术点上有个了解.
  首先我们需要建立一个叫DynamicLoading的silverlight Application, 然后将如下的内容拷贝
到Page.xaml中:

Code


然后我们需要先建立一个接口文件(类似于插件接口),所以在当前SLN下新加一个Silverlight Class
Library 项目,名称为:Interfaces .将class.cs文件改名为:IEditText.cs .
将如下接口内容拷贝到该cs文件中:

Code


编译这个接口项目.接下来我们将会实现这个接口(相当于实际的插件功能).
我们再新建一个叫Implementation的Silverlight Class Library 项目,重命名class.cs文件为Editor.cs
, 将如下内容拷贝到项目的cs文件中:

Code


之后,我们编译一下译项目.

  下面看一下加载上面类库的代码(位于Page.xaml.cs文件中):

Code


当然要编译还要引用一下前面写的接口项目(Interfaces),这样代码部分就完成了.这里我们还
要将类库Implementation.dll(插件)放入web项目中的ClientBin文件夹下.这样我们就可以运行文章
开始处的页面了.

  是不是很简单,这里面主要的一块内容就是使用WebClient读取dll文件,如下:

Code


其它的内容都是小Case:)

   好了,今天的内容就到这里了,感兴趣的朋友可以一起来讨论:)

源码下载:
 附件: 您所在的用户组无法下载或查看附件

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Silverlight] 的这些文章也感兴趣:

Silverlight 2 多国语言支持
Silverlight1.1中的事件处理
使用SilverLight构建插件式应用程序(二)
Silverlight 点燃了 RIA 之争
SilverLight for SharePoint
三分钟制作精美电子地图(Silverlight 2 + Deep Zoom 含代码)
开发Silverlight 2.0的自定义控件
Silverlight 2.0 RTW 正式版发布(附下载地址)
在silverlight中使用Linq TO XML
微软计划发布 Silverlight 2.0