Ошибка вызова com-компонента
От: Magwaj  
Дата: 12.02.10 08:23
Оценка:
У меня есть клиент(ексешник) и com объект тоже в виде эксешника. Мне надо клиентом из ком-объекта вызвать метод.
вот описание интерфейса сом-объекта:
public interface MethodsCOMReestr
{
//описание всех вызываемых методов
string Ping();
}

в coclasse вызываю:

public class COMInterace:System.EnterpriseServices.ServicedComponent, MethodsCOMReestr
{
public string PingReestr()
{
objClassType = Type.GetTypeFromCLSID(myGuid, COMServerReestr);
COMMethods = (MethodsCOMReestr)Activator.CreateInstance(objClas­sType);
COMMethods.Ping()
}
}

возникает ошибка при CreateInstance:
"Невозможно привести COM-объект типа \"System.__ComObject\" к интерфейсному типу \"DIS.MethodsCOMReestr\". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID \"{B671ED92-76E2-4CD9-AE42-F204211153C9}\" возвратил следующую ошибку: Интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE))

Я так понимаю, что не так объявил интерфейс ком-объекта?
Re: Ошибка вызова com-компонента
От: Magwaj  
Дата: 12.02.10 11:20
Оценка:
Все, решил проблему. Вот:

myGuid = new Guid(GUIDReestr);
objClassType = Type.GetTypeFromCLSID(myGuid, COMServerReestr);
COMObject = Activator.CreateInstance(objClassType);
COMObject.GetType().InvokeMember("Ping", BindingFlags.InvokeMethod, null, COMObject, null);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.