private static void SaveMetaDataSection(ChoPerformanceCounter pc) { string xPath = GetXPath(pc); ChoPCMetaDataInfo metaDataInfo = pc.MetaDataInfo; using (ChoXmlDocument xmlDocument = new ChoXmlDocument(MetaDataFilepath, false, false)) { if (metaDataInfo == null) { return; } XmlNode node = xmlDocument.XmlDocument.SelectSingleNode(xPath); if (node == null) { node = xmlDocument.XmlDocument.MakeXPath(xPath); } if (node != null) { ChoXmlDocument.SetOuterXml(node, metaDataInfo.ToXml()); xmlDocument.Save(); } } }
public static ChoPCMetaDataInfo GetMetaDataSection(ChoPerformanceCounter pc) { if (pc == null) { return(null); } string xPath = GetXPath(pc); XmlNode node = null; if (_rootNode != null) { node = _rootNode.SelectSingleNode(xPath); } if (node != null) { XmlAttributeOverrides overrides = new XmlAttributeOverrides(); XmlAttributes attr = new XmlAttributes(); attr.XmlRoot = new XmlRootAttribute(node.Name); overrides.Add(typeof(ChoPCMetaDataInfo), attr); ChoPCMetaDataInfo metaDataInfo = node.ToObject(typeof(ChoPCMetaDataInfo), overrides) as ChoPCMetaDataInfo; return(metaDataInfo); } else { return(null); } }
public static bool IsMetaDataModified(ChoPerformanceCounter pc) { if (pc == null) { return(false); } ChoPCMetaDataInfo newConfigurationMetaDataInfo = GetMetaDataSection(pc); return(!ChoObject.Equals <ChoPCMetaDataInfo>(newConfigurationMetaDataInfo, pc.MetaDataInfo)); }
public static ChoPCMetaDataInfo GetMetaDataSectionNSaveIfEmpty(ChoPerformanceCounter pc) { ChoPCMetaDataInfo metaData = GetMetaDataSection(pc); if (metaData == null) { SaveMetaDataSection(pc); return(pc.MetaDataInfo); } else { return(metaData); } }