/// <summary> /// Инициализировать формулу из сохраненного раннее узла Xml /// </summary> /// <param name="node">Узел на основе которого выполнить инициализацию макроса</param> public void InstanceMacrosFromXmlNode(XmlNode node) { if (slim.TryEnterWriteLock(300)) { try { if (arguments != null) { if (arguments[0] != null && arguments[1] != null) { XmlNode[] argsNode = FindArguments(node); if (argsNode != null) { if (argsNode[0] != null && argsNode[1] != null) { arguments[0].InstanceFromXml(argsNode[0]); arguments[1].InstanceFromXml(argsNode[1]); InitDescription(node); } } } } if (node.HasChildNodes) { foreach (XmlNode child in node.ChildNodes) { switch (child.Name) { case "Pair": try { ArgumentPair pair = new ArgumentPair(); pair.Load(child); args.Add(pair); } catch { } break; default: break; } } } } finally { slim.ExitWriteLock(); } } }