private static object CreateAndAddInstanceFromClipboard(string instanceType, DataTypes.ArrowElementSave currentArrowElement, string xmlSerializedString) { object newObject = null; if (instanceType == typeof(AxisAlignedRectangleSave).Name) { AxisAlignedRectangleSave aars = FileManager.XmlDeserializeFromString <AxisAlignedRectangleSave>( xmlSerializedString); currentArrowElement.Rectangles.Add(aars); newObject = aars; } else if (instanceType == typeof(CircleSave).Name) { CircleSave circleSave = FileManager.XmlDeserializeFromString <CircleSave>( xmlSerializedString); currentArrowElement.Circles.Add(circleSave); newObject = circleSave; } else if (instanceType == typeof(SpriteSave).Name) { SpriteSave spriteSave = FileManager.XmlDeserializeFromString <SpriteSave>( xmlSerializedString); currentArrowElement.Sprites.Add(spriteSave); newObject = spriteSave; } return(newObject); }
public void MakeNewObjectUnique(DataTypes.ArrowElementSave container, object newObject) { string name = LateBinder.GetValueStatic(newObject, "Name") as string; List <string> allNames = new List <string>(); foreach (var item in container.AllInstances) { if (item != newObject) { allNames.Add(LateBinder.GetValueStatic(item, "Name") as string); } } name = StringFunctions.MakeStringUnique(name, allNames); LateBinder.SetValueStatic(newObject, "Name", name); }