欢迎光临
我们一直在努力

COM+ Web 服务:通过复选框路由到 XML Web Services (转)7-.NET教程,Web Service开发

建站超值云服务器,限时71元/月

此 c# 程序有两个类:child 和 parent。如果运行以下 vbscript 示例,wko 与 cao 模型的区别会更加明显:

set c1 = getobject
   ("soap:wsdl=http://jnoss4/refpass/refpass.child.soap?wsdl")
set c2 = getobject
   ("soap:wsdl=http://jnoss4/refpass/refpass.child.soap?wsdl")
c1.setname("c1")
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
c2.setname("c2")
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()

运行时将显示以下输出内容:

c:\moniker>refpasswko
microsoft (r) windows script host version 5.6
copyright (c) microsoft corporation 1996-2001. all rights reserved.

none 1
none 1
none 1
none 1
none 1
none 1
none 1
none 1
none 1
none 1

名称和值说明了单一调用已知对象的无状态性质,因为组件是使用不同的方法调用创建的,所以方法调用之间不保留名称或值。

如果导出客户端代理,然后导入到另一台客户端计算机上,并且运行了下面的 vbscript,则 soap 激活将是 cao 而不是 wko:

直接创建两个对象
set c1=createobject("refpass.child")
set c2=createobject("refpass.child")
设置第一个对象的名称,并调用数次
以递增对象内部计数器
c1.setname("c1")
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
wscript.echo c1.countup()
设置第一个对象的名称,并调用数次
以递增对象内部计数器
c2.setname("c2")
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()
wscript.echo c2.countup()
创建父对象
set p=createobject("refpass.parent")
将子对象传递到父对象,并从父对象调用子对象
wscript.echo p.setref(c1)
wscript.echo p.countup(c2)
wscript.echo p.countup(c2)
wscript.echo p.countup(c2)
wscript.echo p.countup(c2)
现在调用存储在父对象内部的子对象
dim c9
wscript.echo p.countup(c9)
从父对象获取该对象并直接调用
set c3 = p.getref()
wscript.echo c3.countup()

从命令行运行时,将显示以下输出内容:

c:\moniker>refpasscl
microsoft (r) windows script host version 5.6
copyright (c) microsoft corporation 1996-2001. all rights reserved.

c1 1
c1 2
c1 3
c1 4
c1 5
c2 1
c2 2
c2 3
c2 4
c2 5
c1 5
c2 6
c2 7
c2 8
c2 9
c1 6
c1 7

即使在通过 soap 调用时,cao 激活也会保留状态,并且允许通过 soap 来回传递对象引用。名称和值都保留在服务器上的类实例中,并且引用可以正确工作。这两种脚本都调用相同的编译 c# 组件,只是 .net remoting 激活模型不同。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » COM+ Web 服务:通过复选框路由到 XML Web Services (转)7-.NET教程,Web Service开发
分享到: 更多 (0)