使用PB 11.5调用.NET Web Service的教程

5星 · 超过95%的资源 需积分: 18 24 下载量 140 浏览量 更新于2024-10-23 1 收藏 1.83MB DOC 举报
"通过PB 11.5调用.NET Web Service" 在本文中,我们将探讨如何使用PowerBuilder (PB) 11.5版本来调用.NET Web Service。这是一项重要的技术,允许PB应用程序利用远程Web Service的功能,扩展其业务逻辑和数据交互的能力。 第一步是获取Web Service的WSDL(Web Service Description Language)文件。WSDL是一种XML格式的文档,它定义了Web Service的接口,包括方法、参数、输入和输出数据类型。对于大多数Web Service,可以通过在其URL后附加"?WSDL"来获取WSDL文件。在本例中,示例Web Service的URL是http://greg.froh.ca/fun/random_bushism/,而WSDL文件则可通过http://greg.froh.ca/fun/random-bushism/soap/?wsdl访问。 第二步涉及在PB中创建一个WebService代理。这是通过PB的内置向导完成的,该向导可以自动生成与Web Service接口匹配的代理类。在"文件"菜单中选择"新建",然后在项目选项卡中选择"Web Service代理"。在这个过程中,你需要指定生成代理类的PBL(Program Block Library)以及代理名前缀,例如,"s21_"表示服务21。 在"通用"标签页中,你需要指定生成代理类的目标PBL,这通常是一个专门为代理类创建的新PBL,以保持代码组织的清晰性。而在"WebService"标签页中,你可以输入或粘贴之前获取的WSDL文件的URL,这将告诉PB如何连接到Web Service并理解其接口。 完成上述步骤后,PB将自动生成所需的所有代理类,这些类可以直接在PB应用中实例化并调用Web Service的方法。通过这些代理类,PB应用可以如同调用本地函数一样调用远程Web Service的操作。 调用Web Service的方法通常涉及创建代理类的对象,然后调用其公开的方法,并传递所需的参数。返回的结果通常会自动封装在PB的数据类型中,以便于处理和显示。 在PB 11.5中,对.NET Web Service的支持增强了PB作为客户端应用程序开发工具的能力,使其能够无缝集成到基于Web的分布式系统中。这种功能的使用不仅限于示例中的随机布什语录服务,还可以应用于各种业务场景,如数据交换、API调用等。 PB 11.5的.NET Web Service支持简化了与Web Service交互的过程,使得PB开发者能够快速而高效地利用Web Service提供的功能,拓宽了PB应用程序的潜力和应用场景。通过深入理解和熟练运用这一技术,开发者可以构建更强大、更灵活的跨平台应用程序。
2009-02-27 上传
在c# 2005中编写com组件,供PB11调用实例,研究了一下午,终于成功了,分享给大家 前言:c#中写的dll直接是不能被pb调用的,只有写成com组件才可以调用,所以用c#写dll时要注意。 1、c#2005中新建项目,类型为类库,项目名为AddCom确定。   配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 2、打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)],如果不改则不能被其他程序调用 3、编写com组件会用到guid(全球唯一ID),编写com组件必须要用到。c#会默认生成一个放在AssemblyInfo.cs,如没有生成,网上下一个生成guid的软件,有很多呢。 4、c#中源代码如下,按如下方法编写代码后生成工程,/bin/release中得到AddCom.dll。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace AddCom { [Guid("298D881C-E2A3-4638-B872-73EADE25511C")] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); } [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")] [ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } } } 5、dos下利用 e:\regasm AddCom.dll 命令注册com组件,可以理解为非.net平台下的regsvr32注册dll组件。提示注册成功即可。 6、pb11中利用ole调用来调用com组件,注意,此com组件无法用create ole control的browse查看到,只能利用如下的方法直接动态调用。 integer li_a,li_b,li_total //----------注册c#生成的com组件------------ OleObject ole_AddCom ole_AddCom = Create OLEObject li_rc = ole_AddCom.ConnectToNewObject("AddCom.AddComService") //AddCom为c#中namespace,AddComService为c#中namespace中的class if li_rc <> 0 then MessageBox("ConnectToNewObject", string(li_rc) ) return end if //----------调用com组件中的函数-------------- li_total = ole_AddCom.iadd(li_a, li_b) //iadd为c#中namespace(AddCom为c)中class(AddComService为c)中的函数(iadd()) 完毕 *以上为个人经验,欢迎大家发邮件沟通。 email: kair-china@vip.sina.com qq: 55092518