Database для теста пожалуй что и совсем ни к чему. Тем более в конструкции using.
Андрей, спасибо, что ткнули носом в статью. Оба Ваших сайта читал с интересом и ее вроде просматривал, но вот не отложилось. Тогда про IDisposable не задумывался.
Только вот все равно что-то не так. Я уж разные варианты пробовал. С using - это уж изголяться начал. И, как оказалось, наоборот усугубил.
Ну вот меняю например фрагмент с открытием файла на такой:
//Если файл все же понадобилось открыть
if (true)
{
Document activeDoc = Application.DocumentManager.MdiActiveDocument;
//Активный файл не должен быть безымянным
if (Convert.ToInt32(Application.GetSystemVariable("dwgtitled")) == 0) return;
Document dwgFile = Application.DocumentManager.Open(file.FullName, false);
Application.DocumentManager.MdiActiveDocument = dwgFile;
if (Application.DocumentManager.MdiActiveDocument != dwgFile) return;
//Далее запросы пользователю и т.п. в активном документе
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptEntityOptions options = new PromptEntityOptions("\nВыберите однострочный текст ");
options.SetRejectMessage("\nОшибочный выбор. Это не однострочный текст");
options.AddAllowedClass(typeof(DBText), true);
PromptEntityResult pEResult = ed.GetEntity(options);
Application.DocumentManager.MdiActiveDocument = activeDoc;
dwgFile.CloseAndDiscard();
}
И на втором-третьем файле опять получаю:
FatalExecutionEngineError was detected
Message: В среде выполнения обнаружена критическая ошибка. Ошибка произошла по адресу 0xe6e7175e в потоке 0x217c. Код ошибки 0xc0000005. Она может быть вызвана ошибкой в CLR или в небезопасных либо не поддающихся проверке фрагментах пользовательского кода. Обычно источниками таких ошибок бывают ошибки упаковки, допускаемые пользователями при COM-взаимодействии, либо PInvoke, повредивший стек.
Вроде как в строке:
PromptEntityResult pEResult = ed.GetEntity(options);
Даже ткнуть в текст не успеваю. Запрос, потом ошибка.
С другой стороны, если без отладки запускать, то вроде работает.