Пользовательский или .Net класс как параметр COM или выход - PullRequest
1 голос
/ 22 октября 2010

Может кто-нибудь указать мне на пример, который показывает, как передать и / или вернуть класс из класса .NET, представленного как COM.Потребитель COM будет VBScript.Кроме того, можно передать объект из VBScript в метод .NET-COM?Например

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

Как вы вызываете MethodName в VBScript (ASP)

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Я не думаю, что NameValueCollection помечена как ComVisible, поэтому я подозреваю, что нет.

0 голосов
/ 23 октября 2010

В VBScript для создания и использования объекта ...


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

Единственными факторами при передаче значений любого вида назад и вперед являются: а) как ваш класс COM переводит их назад и вперед ; и б) как ваш потребительский / клиентский язык переводит их туда и обратно. Объекты есть объекты. Но по сути, класс COM, который вы создаете, вызываете или назначаете, должен иметь свой интерфейс, правильно настроенный и зарегистрированный. И (я думаю) любой объект, который вы создаете с помощью CreateObject(), должен реализовывать одно из нескольких свойств, открывающих его для COM, чтобы иметь возможность использовать любой из его методов или получить доступ к его свойствам. А именно атрибут ComVisible(true).

Вы найдете, что большинство классов .Net по умолчанию не могут вызываться полностью с использованием COM, даже если в документации помечено иное (вероятно, либо потому, что ваш язык потребителя / клиента не может с этим справиться, либо он на самом деле не вызывается COM) Вы должны сделать свой собственный пользовательский COM Callable Wrapper .

...