private NewElementCreateData GetElementCreateData(object persistee) { Debug.Assert(persistee != null, "persistee is null"); IXmlTestStoreCustom custom = persistee as IXmlTestStoreCustom; NewElementCreateData toReturn = new NewElementCreateData(); if (custom != null) { toReturn.ElementName = custom.ElementName; toReturn.NamespaceUri = custom.NamespaceUri; } if (toReturn.ElementName == null) { toReturn.ElementName = persistee.GetType().Name; } if (toReturn.NamespaceUri == null) { toReturn.NamespaceUri = this.namespaceUri; } return(toReturn); }
/// <summary> /// Accepts name == null /// </summary> /// <param name="parent"> parent xml</param> /// <param name="name">The local name of the new element. </param> /// <param name="instance">the object for which element has to create</param> /// <returns>a new XmlElement attached to the parent</returns> private XmlElement CreateElement(XmlElement parent, string name, object instance) { if (name != null) { return(this.CreateElement(parent, name)); } else { NewElementCreateData createData = this.GetElementCreateData(instance); return(this.CreateElement(parent, createData.ElementName, createData.NamespaceUri)); } }