как работать с out-of-proc COM компонентами?
От: bh90211  
Дата: 10.04.06 12:19
Оценка:
Есть COM out-of-proc компонент представляющий собой exe файл.
Нужно вызвать его метод.

Пробовал так
Сделал add reference
в рез-те d bin появилаcь Interop.component.dll

System.Reflection.Assembly a = System.Reflection.Assembly.Load("Interop.component");

Type rs1 = a.GetType("SomeClass");
object o = Activator.CreateInstance(rs1);
System.Reflection.MethodInfo mi = rs1.GetMethod("SomeMethod");
UInt32 out = 0;
object[] param = new object[3];
param[0] = 0;
param[1] = 1;
param[2] = out;
object ret = mi.Invoke(o, param);

В рез-те получаю ошибку

Exception has been thrown by the target of an invocation

Если делаю так

rs1.InvokeMember("SomeMethod", System.Reflection.BindingFlags.InvokeMethod, null, o, param);

то получаю ошибку

COM target does not implement IDispatch.

Есть ешё маленькая проблема. Этот COM объект имеет Custom Marshaling

Как правилно вызывать методы таких объектов?
Или может нужно использовать через COM+ ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.