@AbnormalUnit

COM объект из c#. Обращение к свойству?

Здравствуйте, сейчас постараюсь выложить суть проблемы:

Зарегистрированы и подключены к проекту ряд com-библиотек.

Получаю значение примерно так:

ComObject1 com = new ComObject1();<br/>
string name = com.get_Property(&quot;name&quot;) as string;



устанавливаю значение примерно так:
((dynamic)com).name = &quot;Vasiliy&quot;;


Работа ведется не с одним объектом, а с несколькими.

Так вот:


1. Иногда, в сеттере свойства класса, который включает этот ком-объект, когда устанавливаю значение для свойства name ком-объекта вываливается эксепшн:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt



2.Ладно, устанавливаю это же свойство только в конструкторе этого класса, так все проходит на ура. Ну на ура и бог бы с ним. Но нет, после этого, из конструктора вызывается работа над коллекцией некоторых других com-объектов, которые так же содержат поле Name. Так вот после установки того, первого, имени не дает уставить поля name для объектов в коллекции. Пишет, что не может invoke Name.

Эти объекты никак не связаны. Если же не буду устанавливать имя до работы с коллекцией, то эти свойства в объектах внутри коллекции нормально поставлю.


Короче какая-то такая ерунда происходит.

Никто с таким не сталкивался?
  • Вопрос задан
  • 4750 просмотров
Пригласить эксперта
Ответы на вопрос 1
xaizek
@xaizek
Я переодически вижу подобную «ерунду» работая с COM и всегда причиной являются ошибки в работой с памятью в COM-библиотеке (например, преждевременное уничтожение объекта из-за ошибок в подсчёте ссылок). Не могу утверждать однозначно, что это Ваш случай, но очень похоже.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы