【问题标题】:Custom or .Net Class as COM parameter or ouput自定义或 .Net 类作为 A 参数或输出
【发布时间】:2010-10-24 03:17:27
【问题描述】:

谁能给我指出一个示例,该示例显示如何从公开为 COM 的 .NET 类传递和/或返回一个类。 COM 使用者将是一个 VBScript。此外,是否可以将对象从 VBScript 传递到 .NET-COM 公开的方法?例如

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

如何在 VBScript (ASP) 中调用 MethodName

谢谢!

【问题讨论】:

    标签: .net com interop


    【解决方案1】:

    我不认为 N​​ameValueCollection 被标记为 ComVisible,所以我怀疑不是。

    【讨论】:

      【解决方案2】:

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

      设置 obj= CreateObject("your.fully.qualified.com.classname") obj.Do_Some_Method(some_obj_param, another_obj_param) obj.Some_Property = 任何东西

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        相关资源
        最近更新 更多