Здравствуйте. Хочу перебрать все элементы дерева, и те из них, которые архивируются, сохранить в файл вместе с настройками архивирования. Это необходимо мне, чтобы навести порядок в БД.
Пробую вот так:
Но в таком случае настройки архивирования, которые заданы по умолчанию, игнорируются (метод GetPtoperty возвращает пустую строку). Подскажите можно как-то сделать, чтобы метод GetProperty возвращал все настройки или как-то по другому решить этот вопрос?Код:public partial class ФБ : ScriptBase { const string resultStr = "D:\\Result.csv"; public override void DoAction() { using (var file = new StreamWriter(resultStr, false, Encoding.GetEncoding("windows-1251"))) { file.WriteLine(string.Format("{0};{1};{2};{3};{4}", "Имя", "Запись по изменению", "Мертвая зона", "Запись по времени", "Период, мс")); HostFB.TreeItemHlp.Project.ObjectTreeRootItem.NavigateChilds(delegate(ITreeObjectHlp e) { if(e.TypeName == "Выход" && e.DoArchiving) { string name = e.DisplayName; var element = e as ITreePinHlp; string archiveDeadband = element.Properties.GetProperty(CatID.Archives, (int)PropID.Archives.ArchiveDeadband, false, "" ).ToString(); string archiveWriteByChange = element.Properties.GetProperty(CatID.Archives, (int)PropID.Archives.ArchiveWriteByChange, false, "" ).ToString(); string archiveWriteByTime = element.Properties.GetProperty(CatID.Archives, (int)PropID.Archives.ArchiveWriteByTime, false, "" ).ToString(); string archivePeriodForceWrite = element.Properties.GetProperty(CatID.Archives, (int)PropID.Archives.ArchivePeriodForceWrite, false, "" ).ToString(); file.WriteLine(string.Format("{0};{1};{2};{3};{4}", name, archiveWriteByChange, archiveDeadband, archiveWriteByTime, archivePeriodForceWrite)); } return true; },TreeItemMask.All, NavigateItemsFlags.CurrentComputer); } } }


Ответить с цитированием
