任何人都可以向我指出一个示例,该示例演示如何从作为COM公开的.NET类传递和/或返回类。 COM消费者将是VBScript。此外,可以将对象从VBScript传递给.NET-COM公开的方法吗?例如
[ComVisible(true)]
public class A
{
public SomeClass MethodName(NameValueCollection param)
{
return new SomeClass();
}
}
如何在VBScript(ASP)中调用MethodName
谢谢!
答案 0 :(得分:2)
我不认为NameValueCollection被标记为ComVisible,所以我怀疑没有。
答案 1 :(得分:0)
在VBScript中,创建和使用对象......
set obj= CreateObject("your.fully.qualified.com.classname") obj.Do_Some_Method(some_obj_param, another_obj_param) obj.Some_Property = anything
来回传递任何类型值的唯一因素是:a)你的COM类如何translate them back and forth;和b)您的消费/客户语言如何来回翻译。对象是对象。但从根本上说,您创建,调用或分配的COM类必须正确设置和注册其接口。并且(我认为)使用CreateObject()
创建的任何对象必须实现几个属性之一,将其公开给COM,以便能够使用其任何方法或访问其属性。即ComVisible(true)
属性。
你会发现大多数.Net默认类使用COM都不能完全调用,即使在文档中另有标记(可能是因为你的消费者/客户端语言无法处理它或者它实际上不是COM可调用的),因此你必须自己制作custom COM Callable Wrapper。