PowerBuilder 11.NET互操作能力-创建和使用.NET资源.doc

PowerBuilder 11.NET互操作能力-创建和使用.NET资源.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PowerBuilder 11.NET互操作能力-创建和使用.NET资源

PowerBuilder 11的.NET互操作能力 创建和使用.NET资源 John Strano PowerBuilder 11将整个应用作为.NET Windows Form或Web Form应用来部署,将单独的组件作为.NET 程序集和.NET Web服务来部署。PowerBuilder 11使用默认的.NET 框架资源和开发人员自定义的.NET资源。非PowerBuilder .NET解决方案可以互操作和利用PowerBuilder在数据访问和数据操作方面独一无二的高生产能力。简而言之,PowerBuilder 11创建和使用.NET资源。 一旦PowerBuilder 11已经将一个应用或组件部署为.NET,开发人员可以通过PowerScript的增强功能,在已有脚本基础上利用外部.NET资源。PowerBuilder 11中脚本的.NET互操作能力是通过一个新的条件编译特性实现的。在代码的预处理块中为用作.NET互操作的声明、引用和调用等声明条件编译。这些预处理块的结构类似于IF 语句。如果开发人员指定了这些#IF/THEN/#ELSE/#ELSEIF块仅在.NET运行时执行,那么PowerBuilder的Win32编译器就忽略它们。 条件编译 开发人员无需牢记新结构的语法,或被IDE和帮助文档间的不断切换打断思路。PowerScript编辑器增加了一个有助于提高生产能力的功能,该功能使开发人员可以快速粘贴想要的.NET #IF语句(如图1所示)。 图1 预处理变量允许开发人员设定统一的.NET部署条件,如果开发人员愿意的话可以为特定的部署如WinForm,WebForm,Web服务等设定(如表1所示) 目标类型 预定义的预处理器 本地PB(Win32) PBNATIVE .NET Windows Form应用 PBWINFORM PBDOTNET .NET Web Form应用 PBWEBFORM PBDOTNET .NET Web服务 PBWEBSERVICE PBDOTNET .NET程序集 PBDOTNET 表1 创建对.NET 程序集的引用 一旦开发人员确认想利用某一.NET资源,就需要将这一.NET 程序集引入PowerBuilder .NET目标的域,这样才可以生成引用它的脚本。无论你的PowerBuilder .NET目标是作为WinForm、WebForm、.NET 程序集还是.NET Web服务,在PowerBuilder系统树的那个目标上单击鼠标右键,并在弹出菜单中选择“Properties。..”(如图2所示)。在目标属性窗口中选择“.NET Assemblies” Tab页,单击这个按钮你就可浏览选择你要程序集。选好后单击OK关闭目标的属性窗口。 图2 在本教程中,我选择一个程序集MSCORLIB.DLL,它是默认.NET 框架的一部分的 (如图3所示)。想要的话,你可以展开系统树的程序集节点来浏览程序集公共接口中有哪些可用的东西。 图3 调用命名空间中的类 假设我想使用MSCORLIB的System.Collections命名空间中的ArrayList。在“#IF defined PBDOTNET”预处理块中,我声明了一个System.Collections.ArrayList类型的变量,创建了ArrayList的实例,然后给变量赋值引用这个实例。之后的事情就很简单了,调用ArrayList的add()方法来填充实例,然后,在这个纯理论的例子中,连接成一个简单的字符串。 对于条件编译存在的一系列限制和.NET互操作能力的通用约束,请参考PowerBuilder 11的文档。 #if DEFINED PBDOTNET then system.collections.ArrayList al al = create system.collections.ArrayList al.add(“PWERBUILER 11…”) al.add(“VERY”) al.add(“PRODUCTIVE”) string s s = al[0].tostring() + “ ” + al[1].tostring() + “ ” + al[2].tostring() + “!” // index starts from 0! sle_text = s #end if 注意完成AllayList类的实例化的语法是“create”而不是“new”。显然.NET预处理代码块中的代码实际上是PowerScript的变种,而不是C#的。 跨语言的数据交换 既然PowerScript编译器不识别.NET预处理代码块中的代码,那么就不能在预处理代码块外引用代码块内声明的变量。如

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档