public virtual void ReadFrom(XElement xE) { Operator = null; LhsOperand = null; RhsOperand = null; FunctionString = null; foreach (var xItem in xE.Elements()) { var localName = xItem.Name.LocalName; if (localName == "operator") { Operator = FunctionOperatorExtensions.Parse(xItem.Value); } else if (localName == "lhsOperand") { if (LhsOperand == null) { LhsOperand = new List <FunctionArgumentOperand>(); } var lhsOperandItem = InstanceCreator.CreateFunctionArgumentOperand(xItem); lhsOperandItem.ReadFrom(xItem); LhsOperand.Add(lhsOperandItem); } else if (localName == "rhsOperand") { if (RhsOperand == null) { RhsOperand = new List <FunctionArgumentOperand>(); } var rhsOperandItem = InstanceCreator.CreateFunctionArgumentOperand(xItem); rhsOperandItem.ReadFrom(xItem); RhsOperand.Add(rhsOperandItem); } else if (localName == "functionString") { FunctionString = xItem.Value; } } }