Здравствуйте. Хочу перебрать все элементы дерева, и те из них, которые архивируются, сохранить в файл вместе с настройками архивирования. Это необходимо мне, чтобы навести порядок в БД.
Пробую вот так:
Код:
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);
}
}
}
Но в таком случае настройки архивирования, которые заданы по умолчанию, игнорируются (метод GetPtoperty возвращает пустую строку). Подскажите можно как-то сделать, чтобы метод GetProperty возвращал все настройки или как-то по другому решить этот вопрос?