Silverlight实例教程 - Out of Browser与COM的交互基础

Silverlight实例教程 - Out of Browser与COM的交互基础,第1张

概述相信读过前几篇Silverlight Out of Browser实例教程的朋友已经对Silverlight的OOB应用有了一定的认识和了解。今天,我们将讨论Silverlight Out of Browser的另外一个功能实例,Silverlight OOB与COM API的交互 *** 作。   在开始实例之前,我们先了解一些基本的概念。   首先说说什么是COM? 这里我不想过多篇幅的讨论COM和C 相信读过前几篇Silverlight Out of browser实例教程的朋友已经对Silverlight的OOB应用有了一定的认识和了解。今天,我们将讨论Silverlight Out of browser的另外一个功能实例,Silverlight OOB与COM API的交互 *** 作。   在开始实例之前,我们先了解一些基本的概念。 首先说说什么是COM? 这里我不想过多篇幅的讨论COM和COM+,在微软MSDN对COM技术有详细的解释, 有兴趣的可以看看。这里我们只是对COM进行一个简单的描述。所谓COM也就是Componet Object Model,中文称为组件对象模型,通常被用于创建可复用软件组件。在微软的产品中,许多应用都提供了COM接口供开发人员调用。其中较为典型的是Office系列的COM接口。 对于COM和COM+的专业定义,COM是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互 *** 作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的 *** 作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。 而COM+可以称为COM的一个升级版本,其底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+综合了COM、DCOM和MTS这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过 *** 作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给 *** 作系统,因此,COM+与 *** 作系统的结合更加紧密。值得注意的是COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现。 Silverlight 4对COM的支持 早期的Silverlight开发人员都知道,Silverlight作为客户端技术,无法执行权限较高的 *** 作,例如读写本地磁盘,执行本地命令等。Silverlight 4的发布,增加对COM的支持,允许Silverlight在OOB信任应用下,对COM API进行互 *** 作,该功能提高了Silverlight的功能,是其应用如同windows应用一样,轻松 *** 作windows API。这里请大家注意,微软给出的建议,Silverlight 4对于COM的支持,仅限于windows *** 作系统的COM组件,暂时不能支持用户自定义创建的COM组件,这是目前存在的局限性,不过相信随后的Silverlight版本,会解决这个问题。 Silverlight 4与COM交互技术基础 微软为开发人员提供了相关的API,使Silverlight 4和COM交互 *** 作开发简单化。其要点如下: 在Silverlight 4测试版本中与COM交互类是使用 ComAutomationFactory静态类,而在Silverlight 4正式版中,微软将 ComAutomationFactory修改为 AutomationFactory类。 automationFactory类是在System.Runtime.InteropServices.automation命名空间下,提供四个方法和一个属性

 


ComautomationFactory.CreateObject和ComautomationFactory.Getobject用来创建COM实例。  而 ComautomationFactory.GetEvent则是返回一个ComautomationEvent实例,开发人员可以通过该方法激活相关事件。 ComautomationFactory.IsAvailable属性将返回一个布尔型,确认该COM组件是否正在被调用。 最后CreateObject<T>()暂时没有任何作用。 其简单的用法:     1  private  dynamic outlook;
 2 
 3    bool  InitializeOutlook()
 4  {
 5       try  6      {
 7          outlook  =  automationFactory.Getobject( " outlook.application " ); 
 8           return true ;
 9      }
10  catch  (Exception)
11  12  13          {
14              outlook   automationFactory.CreateObject( );
15              outlook.Session.GetDefaultFolder( 6 /*  InBox  */ ).display();
16              outlook.ActiveWindow.windowstate    1
17               18          }
19  20  21  //  返回错误 22  false 23  24  25  } 在上面代码中,我们可以看到一个新的关键字" dynamic",该关键字是C# 4.0的新特性之一,其含义是允许声明一个动态类型的变量,在编译时,编译器允许我们调用任何方法和属性,不会出现异常报错,而在运行时会进行查找调用的方法和属性是否正常,如果方法或者属性存在,并且参数也正确,将会正常调用执行,反之,则返回Microsoft.CSharp.RuntimeBinder.RuntimeBinderException异常错误。对于dynamic关键字的详细解释和更多例程, 推荐大家看看MSDN详细介绍。 在项目中使用dynamic关键字,需要添加新的引用" Microsoft.CSharp",

Silverlight 4与COM交互实例 相信读过上一篇的朋友都还记得,Silverlight 4默认的情况下仅能访问"My..."系列目录,例如“我的文档”,“我的音乐”,“我的图片”等。而使用COM API后,Silverlight 4将会突破该限制,允许应用访问本地任何磁盘和目录。 实例在本地任何磁盘和目录写文件和读文件 *** 作 在本实例中,我们仍旧使用上一篇中的项目代码SilverlightOOBDemo,对其进行简单的修改。 说到本地文件读写 *** 作,很多人都会想到fileSystemObject类,该类提供了简单而又全面的windows文件 *** 作方法,例如读文件,写文件,删文件,改文件,以及与之相同的目录 *** 作。在MSDN中,有关于 FSO所有的方法列表供大家参考。这里我们会用到CreateTextfile,Writeline,OpenTextfile,ReadAll等方法实现Silverlight 4 *** 作任何磁盘和目录写文件和读文件。 在项目中的Toolbar栏,添加新的 *** 作按钮,

  < button  WIDth ="56"  Height ="80"  Style =" {StaticResource BlackGlossybutton} "  margin ="1,0"  Foreground ="White"  x:name ="writefileBtn"  Click ="writefileBtn_Click" >       button.Content StackPanel Image  VerticalAlignment ="top"  HorizontalAlignment ="Center"  Source ="/SilverlightOOBDemo;component/Images/Write.png" ="0,-5,0)"> Stretch ="None" /> TextBlock  ="Bottom"  Text ="写文件"  textwrapPing ="Wrap" </ button ="readfileBtn" ="readfileBtn_Click" ="/SilverlightOOBDemo;component/Images/Read.png" ="读文件" > 为了两个button创建Click事件,writefileBtn_Click和readfileBtn_Click。 写文件 *** 作代码: voID  writefileBtn_Click( object  sender, RoutedEventArgs e)
using  (dynamic fsoCom  Scripting.fileSystemObject ))
                dynamic file   fsoCom.CreateTextfile( @" c:\test.txt                 file.Writeline( Hello Silverlight 4. Silverlight写文件到C:\                 file.Close();
运行OOB应用,点击“写文件”按钮,FSO将在C盘创建test文本文件,其内容如下:

而读文件代码: 1
  2  3   fsoCom.OpenTextfile( 4                  tbResult.Text   file.ReadAll();
5  6  其运行效果如下:

以上都是使用FSO最基础的文件 *** 作API实现的,依次类推,可以很轻松 *** 作本地文件和目录。 今天Silverlight实例教程暂时介绍到这里,下一篇我将继续介绍Silverlight OOB应用与Office应用的交互。 本篇源代码下载  

本文出自 “Kevin Fan” 博客,请务必保留此出处http://www.voidcn.com/article/p-ebhhwlnn-bke.html

总结

以上是内存溢出为你收集整理的Silverlight实例教程 - Out of Browser与COM的交互基础全部内容,希望文章能够帮你解决Silverlight实例教程 - Out of Browser与COM的交互基础所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1020339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存