/// <summary> /// Set the parameters in the properties storage from a specified xml representation of the data. /// </summary> /// <param name="xml">The xml representation of the data.</param> /// <param name="properties">The global properties storage.</param> /// <param name="handler">The handler that holds the builder- to parameter-type relation.</param> /// <returns> /// A new instance of a matching parameter data set for the specified builder. /// </returns> /// <exception cref="InvalidCastException"><c>InvalidCastException</c> Problem building from serialization data.</exception> public IMemberBuildParameters SetParameters(string xml, IBuildDataDictionary properties, IBuildHandler handler) { Guard.NotNull(() => properties, properties); if (handler == null) { // Todo: or throw? return(new EmptyBuildParameters()); } // <NStub.CSharp.ObjectGeneration.Builders.PropertyBuilder> var doc = new XmlDocument(); doc.LoadXml(xml); IMemberBuildParameters setupPara = null; foreach (XmlNode child in doc.ChildNodes) { //var child = doc.FirstChild; if (handler.IsMultiBuilder) { // Hier HAPERTS !!!!!!!!!!!!!!!!!!! multi fetchen ... document node klappt nicht // setupPara = SetSingleNode(properties, handler, child, "Multi." + handler.Type.FullName, string.Empty); setupPara = SetSingleNode(properties, handler, child); } else { setupPara = SetSingleNode(properties, handler, child); } } return(setupPara); }
/// <summary> /// Gets the xml data representation of a single registered <see cref="IMemberBuilder"/>s parameters. /// </summary> /// <param name="builderType">Type of the builder to request data for.</param> /// <param name="parameters">The parameters with the data to serialize.</param> /// <returns> /// The serialized data of the specified <paramref name="builderType"/>. /// </returns> public string SerializeParametersForBuilderType(Type builderType, IMemberBuildParameters parameters) { return(SerializeParametersForBuilderType(builderType, parameters.GetType().Name, parameters.Serialize())); }
private static void SerializeParameterToXmlDocument(XmlDocument xmlDoc, XmlElement root, IMemberBuildParameters setupPara, string builderFullName) { var setupParaType = setupPara.GetType(); // handler.ParameterDataType; var setupParaXml = setupPara.Serialize(); var setupParaTypeName = setupParaType.Name; var ele = xmlDoc.CreateElement(builderFullName); var ele2 = xmlDoc.CreateElement(setupParaTypeName); root.AppendChild(ele); ele.AppendChild(ele2); var innerDoc = new XmlDocument(); var xml = setupParaXml; innerDoc.LoadXml(xml); ele2.InnerXml = innerDoc[setupParaTypeName].InnerXml; foreach (XmlAttribute item in innerDoc[setupParaTypeName].Attributes) { if (item.Name != "xmlns:xsi" && item.Name != "xmlns:xsd") { var attr = xmlDoc.CreateAttribute(item.Name); attr.Value = item.Value; ele2.Attributes.Append(attr); } } }
/// <summary> /// Gets the xml data representation of a single registered <see cref="IMemberBuilder"/>s parameters. /// </summary> /// <param name="builderType">Type of the builder to request data for.</param> /// <param name="parameters">The parameters with the data to serialize.</param> /// <returns> /// The serialized data of the specified <paramref name="builderType"/>. /// </returns> public string SerializeParametersForBuilderType(Type builderType, IMemberBuildParameters parameters) { return SerializeParametersForBuilderType(builderType, parameters.GetType().Name, parameters.Serialize()); }
/// <summary> /// Adds the static builder parameter to the configured builders checked list box. /// </summary> /// <param name="builderType">The Type of the <see cref="IMemberBuilder"/> to add.</param> /// <param name="para">The parameter associated with the specified <paramref name="builderType"/>.</param> private void AddParameterToBox(Type builderType, IMemberBuildParameters para) { var chkItemIndex = this.chklbParameters.Items.Add(builderType); this.chklbParameters.SetItemChecked(chkItemIndex, para.Enabled); }