2010-10-21 25 views
1

任何人都可以指示我一个例子,显示如何传递和/或返回一个.NET类暴露为COM的类。 COM消费者将是一个VBScript。此外,有可能将一个对象从VBScript传递给.NET-COM暴露的方法?例如自定义或.Net类作为COM参数或输出

[ComVisible(true)] 
public class A 
{ 
     public SomeClass MethodName(NameValueCollection param) 
     { 
      return new SomeClass(); 
     } 
} 

你怎么称呼方法名在VBScript(ASP)

谢谢!

回答

2

我不认为NameValueCollection被标记为ComVisible,所以我怀疑没有。

0

在VBScript,创建和使用对象...

 

set obj= CreateObject("your.fully.qualified.com.classname") 
obj.Do_Some_Method(some_obj_param, another_obj_param) 
obj.Some_Property = anything 

的唯一因素,通过任何类型的值时,来回是)如何做你的COM类translate them back and forth;和b)你的消费/客户语言如何来回翻译它们。对象是对象。但从根本上讲,您创建,调用或分配的COM类必须正确设置和注册其接口。并且(我认为)使用CreateObject()创建的任何对象必须实现将其公开给COM的几个属性之一,以便能够使用其任何方法或访问其属性。即ComVisible(true)属性。

你会发现大多数.NET默认类不能完全使用COM调用,即使在文档中另有标记(可能是因为你的消费者/客户端语言无法处理它,或者它确实不是COM可调用的),以及因此你必须自己制作custom COM Callable Wrapper

相关问题