protected override IEnumerable <IFigure> CreateFigures() { var figuresElement = RootElement.Element("Figures"); var inputs = new Dictionary <string, IFigure>(); for (int i = 0; i < Inputs.Count; i++) { inputs.Add(Inputs[i].Name, FoundDependencies[i]); } var deserializer = new DrawingDeserializer(); //EnsureUniqueNames(Drawing, figuresElement); This changes RootElement so that the names don't match up with Inputs. - D.H. var tempFigures = deserializer.ReadFigures(figuresElement, Drawing, inputs); return(tempFigures); }
private void ReadInputs() { var inputs = RootElement.Element("Inputs"); foreach (var inputElement in inputs.Elements()) { string name = inputElement.Attribute("Name").Value; string typeName = inputElement.Attribute("Type").Value; Type type = DrawingDeserializer.FindType(typeName); Inputs.Add(new InputInfo() { Name = name, Type = type }); } }