esper
|
Date: 5/27/2011
Возможно там просто атрибута [System.Runtime.InteropServices.ComVisible(true)] не было?
У меня в другом проекте такой код
///
/// Объект обратного вызова для получения результата доставки сообщения
///
[System.Runtime.InteropServices.ComVisible(true)]
public class SendAsync2Event : IP2AsyncSendEvent2
{
ExecutedEventHandler handler = null;
/// <summary>
/// Инициализировать объект обратного вызова
/// </summary>
/// <param name="handler">Делегат для вызова при доставке сообщения</param>
public SendAsync2Event(ExecutedEventHandler handler)
{
this.handler = handler;
}
/// <summary>
/// Метод вызывается после доставки сообщения плазой
/// </summary>
/// <param name="reply"></param>
/// <param name="errCode"></param>
/// <param name="type"></param>
void IP2AsyncSendEvent2.SendAsync2Reply(CP2BLMessage reply, uint errCode, long type)
{
if (handler != null)
{
handler(new OrderResult(reply, errCode, type));
}
}
}
работает без проблем.
|
|
|
|
Thanks:
|
|
|
|
|
|
aspirant
|
Date: 5/27/2011
esper:
Возможно там просто атрибута [System.Runtime.InteropServices.ComVisible(true)] не было?
Забираю эврику обратно[sad] Дело действительно в [System.Runtime.InteropServices.ComVisible(true)] + класс обязательно должен быть public (в нашем случае MessageDispatcher). Без public атрибута [System.Runtime.InteropServices.ComVisible(true)] недостаточно. Его я поставил вчера на 30-ой минуте, но исключения сыпаться не перестали.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/27/2011
aspirant:
esper:
Возможно там просто атрибута [System.Runtime.InteropServices.ComVisible(true)] не было?
Забираю эврику обратно[sad] Дело действительно в [System.Runtime.InteropServices.ComVisible(true)] + класс обязательно должен быть public (в нашем случае MessageDispatcher). Без public атрибута [System.Runtime.InteropServices.ComVisible(true)] недостаточно. Его я поставил вчера на 30-ой минуте, но исключения сыпаться не перестали.
А зачем закомментил AddMyTrade(0, orderTransactionId, trade);? Не работает?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/27/2011
aspirant:
esper:
Возможно там просто атрибута [System.Runtime.InteropServices.ComVisible(true)] не было?
Забираю эврику обратно[sad] Дело действительно в [System.Runtime.InteropServices.ComVisible(true)] + класс обязательно должен быть public (в нашем случае MessageDispatcher). Без public атрибута [System.Runtime.InteropServices.ComVisible(true)] недостаточно. Его я поставил вчера на 30-ой минуте, но исключения сыпаться не перестали.
Мне кажется, достаточно только public сделать.
|
|
|
|
Thanks:
|
|
|
|
|
|
aspirant
|
Date: 5/27/2011
Mikhail Sukhov:
А зачем закомментил AddMyTrade(0, orderTransactionId, trade);? Не работает?
Этого метода нет[confused] У меня с ним не проект не компилился.
|
|
|
|
Thanks:
|
|
|
|
|
|
esper
|
Date: 5/27/2011
Mikhail Sukhov:
Мне кажется, достаточно только public сделать.
Сейчас проверил в другом проекте, без атрибута не работает.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/27/2011
esper:
Mikhail Sukhov:
Мне кажется, достаточно только public сделать.
Сейчас проверил в другом проекте, без атрибута не работает.
А у меня работает.[glare] А как проверяли?
|
|
|
|
Thanks:
|
|
|
|
|
|
esper
|
Date: 5/27/2011
Mikhail Sukhov:
А у меня работает.[glare] А как проверяли?
Код я приводил выше, просто убрал оттуда атрибут. Без атрибута исключениее на SendAsync2, с атрибутом все нормально. Это и правда становится интересно...
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/27/2011
esper:
Mikhail Sukhov:
А у меня работает.[glare] А как проверяли?
Код я приводил выше, просто убрал оттуда атрибут. Без атрибута исключениее на SendAsync2, с атрибутом все нормально. Это и правда становится интересно...
Стоп машина. Если исключение возникает на SendAsync2, то оно должно возникнуть и на Send. Просто в синхронном режиме ошибки получались читаемые (с описанием), а в асинхронном была ошибка InvalidCastException. Теперь, когда сделали MessageDispatcher ошибки в SendAsync2 так же стали читаемые. Я проверял это на отправке заявки с ценой = 1. Убрал атрибут ComVisible, ошибки опять читаемые. Как только сделал класс private - тут же вместо описания ошибки опять InvalidCastException.
|
|
|
|
Thanks:
|
|
|
|
|
|
esper
|
Date: 5/27/2011
Mikhail Sukhov:
esper:
Mikhail Sukhov:
А у меня работает.[glare] А как проверяли?
Код я приводил выше, просто убрал оттуда атрибут. Без атрибута исключениее на SendAsync2, с атрибутом все нормально. Это и правда становится интересно...
Стоп машина. Если исключение возникает на SendAsync2, то оно должно возникнуть и на Send. Просто в синхронном режиме ошибки получались читаемые (с описанием), а в асинхронном была ошибка InvalidCastException. Теперь, когда сделали MessageDispatcher ошибки в SendAsync2 так же стали читаемые. Я проверял это на отправке заявки с ценой = 1. Убрал атрибут ComVisible, ошибки опять читаемые. Как только сделал класс private - тут же вместо описания ошибки опять InvalidCastException.
Так Send вроде как IP2AsyncSendEvent2 не использует и ошибки связанной с ним там быть не должно[confused]
|
|
|
|
Thanks:
|
|
|
|
|