Действительно… Отдыхаю на проекте otvet.mail.ru… Если бы не большая посещаемость, ноги бы моей там не было. На сайте уже несколько лет не видно никаких изменений в плане нового функционала/исправляемости багов =(
Вызов некоторых свойств и методов на объекте может приводить к повторному чтению
Пока что не доводилось их вызывать, видел несколько методов, которые дублированы свойствами и помечены как устаревшие с сообщением (use transaction instead).
А как тогда поступить, если во многих местах нужно просто получить некоторую информацию из объекта, каждый раз писать код транзакции?
Версия AutoCAD и VS, под какой фреймворк компилируете? Лучше смотреть настройки проекта целиком, выложите где-нибудь проект — посмотрю.
Autocad 2007, при установке поставил .NET 2.0.
Пишу в .NET 3.5 из-за плюшек LINQ. В конце при необходимости собирался переписать обратно на 2.0, т.к. слышал о проблемах скорости и использования памяти LINQ. Проект сейчас скину в ЛС
для хранения ObjectId есть специальное значение DxfCode
Не помните какое именно?
«плагин помечать обозначать атрибутом ExtensionApplication и наследовать от IExtensionApplication»
Как я понял, это нужно делать, только если нужно контролировать Initialize()/Terminate() плагина?
Пробовал удалить эту часть, все работает так же
" объект нельзя передавать из транзакции"
А если я получаю его в режиме только чтение? Мне кажется для него только заполняются поля и далее этот объект никак не связан с базой и транзакцией, так?
«но он медленнее чем Commit, поэтому Commit всегда предпочтительней.» «подключаемые сборки нужно помечать Copy Local: False»
спасибо, буду знать
«по поводу ObjectId и Handle не совсем точно...»
То есть, если я записываю, к примеру, вырезы полилинии в ее ExtDictionary в виде строковых значений разделенных пробелом ObjectId: «3256445 57894554 3215456», я могу быть уверен, что при следующих запусках эти значения будут идентифицировать тот же объект?
«Запустить пошаговую отладку в VS можно...»
Не получается, установил брякпоинт, запустил через F5, дохожу до вызова своей функции и… "Неизвестная команда «PL_NORM». Для вызова справки нажмите F1."
Да, пробовал.
На том месте, где должна появляться пошаговая отладка появляется сообщение о том, что «No symbols are loaded for any call stack frame.» и предложением показать дизассемблированный код, который тоже не показывается, потому что «No disassembly available.»
Name: AutocadGeocomplexPlugin.dll
Path: C:\GeoComplexAutocadPlugin\AutocadGeocomplexPlugin.dll
Optimized: No
UserCode: Yes
Symbols loaded.
Symbol path: C:\GeoComplexAutocadPlugin\AutocadGeocomplexPlugin.pdb
Process: [3100] acad.exe: Managed (v2.0.50727)
Пока что не доводилось их вызывать, видел несколько методов, которые дублированы свойствами и помечены как устаревшие с сообщением (use transaction instead).
А как тогда поступить, если во многих местах нужно просто получить некоторую информацию из объекта, каждый раз писать код транзакции?
Версия AutoCAD и VS, под какой фреймворк компилируете? Лучше смотреть настройки проекта целиком, выложите где-нибудь проект — посмотрю.
Autocad 2007, при установке поставил .NET 2.0.
Пишу в .NET 3.5 из-за плюшек LINQ. В конце при необходимости собирался переписать обратно на 2.0, т.к. слышал о проблемах скорости и использования памяти LINQ. Проект сейчас скину в ЛС
для хранения ObjectId есть специальное значение DxfCode
Не помните какое именно?
Как я понял, это нужно делать, только если нужно контролировать Initialize()/Terminate() плагина?
Пробовал удалить эту часть, все работает так же
" объект нельзя передавать из транзакции"
А если я получаю его в режиме только чтение? Мне кажется для него только заполняются поля и далее этот объект никак не связан с базой и транзакцией, так?
«но он медленнее чем Commit, поэтому Commit всегда предпочтительней.»
«подключаемые сборки нужно помечать Copy Local: False»
спасибо, буду знать
«по поводу ObjectId и Handle не совсем точно...»
То есть, если я записываю, к примеру, вырезы полилинии в ее ExtDictionary в виде строковых значений разделенных пробелом ObjectId: «3256445 57894554 3215456», я могу быть уверен, что при следующих запусках эти значения будут идентифицировать тот же объект?
«Запустить пошаговую отладку в VS можно...»
Не получается, установил брякпоинт, запустил через F5, дохожу до вызова своей функции и… "Неизвестная команда «PL_NORM». Для вызова справки нажмите F1."
На том месте, где должна появляться пошаговая отладка появляется сообщение о том, что «No symbols are loaded for any call stack frame.» и предложением показать дизассемблированный код, который тоже не показывается, потому что «No disassembly available.»
Pdb файл лежит рядом с DLL в папке C:\PluginName\