Удаление свойства из подшивки

Автор Тема: Удаление свойства из подшивки  (Прочитано 2047 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
Нужно удалить все пользовательские свойства из подшивки.
Пробую вызвать Clear у свойства. Получаю фатал AccessViolationException на строке ss.UnlockDb(db):
Код - C# [Выбрать]
  1.         [CommandMethod("TestSsRemoveProperties", CommandFlags.Modal)]
  2.         public static void TestSsRemoveProperties()
  3.         {
  4.             var doc = Application.DocumentManager.MdiActiveDocument;
  5.             var db = doc.Database;
  6.             var mgr = new AcSmSheetSetMgr();
  7.             var ss = mgr.OpenDatabase(@"c:\temp\test.dst", false);
  8.             ss.LockDb(db);
  9.             var sheetSet = ss.GetSheetSet();
  10.             var bag = sheetSet.GetCustomPropertyBag();
  11.             var bagEnum = bag.GetPropertyEnumerator();
  12.             while (true)
  13.             {
  14.                 bagEnum.Next(out var _, out var prop);
  15.                 if (prop == null) break;
  16.                 prop.Clear();
  17.             }
  18.             ss.UnlockDb(db);
  19.             mgr.Close(ss);
  20.         }
AccessViolationException

Отмечено как Решение Вильдар 21-04-2018, 18:05:50

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
Re: Удаление свойства из подшивки
« Ответ #1 : 21-04-2018, 17:05:42 »
 ;D
Код - C# [Выбрать]
  1. bag.SetProperty(propName, null);