![]() |
|
События COM объекта на C# | ☑ | ||
---|---|---|---|---|
0
ДНН
31.03.21
✎
10:09
|
Пишу простой COM-сервер на C#. В 1С COM-объект создается без проблем, обычные методы вызываются.
Но мне нужно сделать событие, которое я смогу подключить через Добавитьобработчик в 1С и 1С бы реагировало на него. Для этого сначала делаю простой пример, чтобы понять как все это работает. Добавил вот такой интерфейс: [Guid("7E290D1A-DE2A-4D73-9B87-9F24E72B2AB9"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] public interface IMyEvents { [DispId(1)] void Sob(); } У класса добавил делегат и событие: public delegate void Sob_Delegate(); public event Sob_Delegate Sob; добавил метод для делегата: public void Test() { } Создаю делегат и вызываю его: Sob_Delegate Sob = Test; Sob(); Когда в 1С вызываю Добавитьобработчик МойОбъект.Sob, ОбработчикСобытия; То выходит ошибка "Событие объекта не обнаружено (Sob)". Как это правильно делается? Может где-то есть пример? |
|||
1
Dmitry1c
31.03.21
✎
10:22
|
Зачем вам этот старый COM...
На C# же вполне себе в т.ч. windows-сервисы можно запилить |
|||
2
ДНН
31.03.21
✎
10:26
|
(1) "windows-сервисы можно запилить" - я думаю с этим будет еще больше проблем, с COM у меня хотя бы пример есть, только примера с событиями нет.
|
|||
3
Garykom
гуру
31.03.21
✎
10:29
|
(0) пример обычной COM ВК есть на мисте с древних времен
Книга знаний: Написание внешних компонент для 1С на VB.NET и C# |
|||
4
ДНН
31.03.21
✎
10:35
|
(3) Это же немного не то. Это внешняя компонента 1С по технологии COM. А у меня обычный COM-компонент.
Просто мне кажется, что добавить событие это как-то очень просто. Чем переопределять все эти методы из API 1с |
|||
5
acht
31.03.21
✎
10:46
|
(0) [ComVisible(true)] кто будет вешать на твой IMyEvents ?
|
|||
6
acht
31.03.21
✎
10:47
|
||||
7
ДНН
31.03.21
✎
10:50
|
(5) Так у меня в AssemblyInfo.cs есть строка [assembly: ComVisible(true)]. Обычные методы же работают
|
|||
8
Garykom
гуру
31.03.21
✎
10:51
|
(4) >добавить событие это как-то очень просто. Чем переопределять все эти методы из API 1с
обертка/шаблон один раз пишется а затем хоть задобавляйся |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |