Строка 43: Зачем вызывается принудительное Dispose для объекта под управлением транзакции?Это остатки прошлых экспериментов, когда я искал причины других ошибок. Все не доходят руки убрать.
Строка 81, 137, 180: Объект ResultBuffer тоже нужно(?) "диспозить" после использования. Либо через использование конструкции using, либо явным вызовом метода Dispose. Не ручаюсь, правда, что это действительно необходимо, но в примерах из интернета это делают. Думаю, что хуже точно не будет.label1:
Строки 124-129 и 165-170: "или крестик снимите, или трусы наденьте" - если используется шаблон "одиночка", то никаких публичных конструкторов.Почему публичные конструкторы в этом контексте не допустимы? В примере от Kean Walmsley есть и "крестик" и "трусы".
Строки 195-198: Вообще не понял этих действий. Это такой хитрый способ удаления данных? Но тогда потом, если я всё правильно понимаю, при вызове Overrule при попытке получения радиуса (строка 142 или 185) будет исключение.А как ты удаляешь XData? После этих строк при чтении данных исключения не будет, поскольку у меня везде для этого случая есть проверки. Это тестовый пример, упрощенный.
Ну и самое главное, что действительно является большой ошибкой - объекты ents в строках 145-150 после использования в отрисовке должны уничтожаться. Опять же - либо Dispose, либо using.goto label1; :)
Ну и я добавлю замечание по поводу этого:Это тестовый пример - "я его слепила из того, что было" ;D
А добавлять новые объекты в БД за вас кто будет? Автокад чтоль?Александр, Вы не поверите... ;)
А добавлять новые объекты в БД за вас кто будет? Автокад чтоль? ))Здрасте! Не путай метод Explode и команду Explode.
Почему публичные конструкторы в этом контексте не допустимы? В примере от Kean Walmsley есть и "крестик" и "трусы".Видимо, ты не до конца понимаешь в чём смысл использования этого шаблона.
А как ты удаляешь XData? После этих строк при чтении данных исключения не будет, поскольку у меня везде для этого случая есть проверки.Да, наверное, ты прав. Я просто забыл, что XData так хитро удаляется. Я бы только не стал это делать прямо в методе Explode.
с добавленными мной строчками все сработало. Так что...Так и без них работает.
Видимо, ты не до конца понимаешь в чём смысл использования этого шаблона.Смысл в том, чтобы переопределение работало только с определенными приложениями, зарегистрированными в БД.
Без них: создал полилинию, вызвал команду и выбрал её, вызвал команду "штриховка", завершил - фаталс добавленными мной строчками все сработало. Так что...Так и без них работает.
С ними: создал полилинию, вызвал команду и выбрал её, вызвал команду "штриховка", завершил - получил отрезок и два кружка.Их не должно было появиться. Вот если бы они появились после команды EXPLODE, то это было бы нормально. А со штриховкой никакие отрезки и кружки появляться не должны.
Тогда извиняюсь - неверно прочитал в чем загвоздкаС ними: создал полилинию, вызвал команду и выбрал её, вызвал команду "штриховка", завершил - получил отрезок и два кружка.Их не должно было появиться. Вот если бы они появились после команды EXPLODE, то это было бы нормально. А со штриховкой никакие отрезки и кружки появляться не должны.
Я вижу в этом возможную проблему, только если используется перерисовка полилинии с изменением её геометрии. Скорее всего, штриховка с использованием такой полилинии как границы будет некорректной.Да нет, вполне корректная, только учитывается оригинальная геометрия полилинии:
только учитывается оригинальная геометрия полилинииНу, собственно, это я и имел в виду. :)