public XElement GenXmlTag() { //set to null if it's default, so it doesn't need to be written in the tag var isTriggeredByBaseClass = TriggeringBaseClass != null && TriggeringBaseClass != Class; var triggerType = isTriggeredByBaseClass ? (TriggerTypes?)TriggerTypes.AttributeInBaseClass : null; var triggerInfo = (triggerType == TriggerTypes.AttributeInBaseClass) ? TriggeringBaseClass.Name : null; var xml = new XElement(Tag.TagPrototype); if (triggerType != null) { xml.SetAttributeValue("Trigger", triggerType.ToString()); } if (triggerInfo != null) { xml.SetAttributeValue("TriggerInfo", triggerInfo); } xml.SetAttributeValue(Tag.GenerateDatePropertyName, DateTime.Now.ToString(Constants.TagDateFormat, Constants.TagDateCulture)); foreach (var keyValuePair in XmlAttributeAttribute.GetXmlProperties(typeof(Tag))) { var propValue = keyValuePair.Value.GetValue(OptionTag); //only write the xml attribute if it has a value, to keep the tag concise if (propValue != null) { xml.Add(new XAttribute(keyValuePair.Key, propValue)); } } return(xml); }
private static void PopulateSegmentWithXml(GeneratedSegment tag, XElement xTag) { try { var xmlProps = XmlAttributeAttribute.GetXmlProperties(typeof(GeneratedSegment)); foreach (var attr in xTag.Attributes()) { var name = attr.Name.LocalName; //skip renderer name if (name == TemplateNamePropertyName) { continue; } var prop = xmlProps[name]; var value = XmlAttributeAttribute.ParsePropertyValue(prop, attr.Value); prop.SetValue(tag, value); } } catch (Exception ex) { Debug.DebugHere(ex); throw; } }
private static GeneratedSegment ParseXml(TextRange range) { try { var tag = new GeneratedSegment(range); var xmlProps = XmlAttributeAttribute.GetXmlProperties(typeof(GeneratedSegment)); var xTag = ExtractXml(range); foreach (var attr in xTag.Attributes()) { var name = attr.Name.LocalName; //skip renderer name if (name == XmlRendererAttributeName) { continue; } var prop = xmlProps[name]; prop.SetValue(tag, ParseXmlAttributeValue(prop, attr.Value)); } return(tag); } catch (Exception ex) { Debug.DebugHere(ex); throw; } }
public XElement GenXmlTag() { var xml = new XElement(Tag.TagPrototype); var trigger = OptionTag.Trigger; xml.SetAttributeValue(Tag.GenerateDatePropertyName, DateTime.Now.ToString(Constants.TagDateFormat, Constants.TagDateCulture)); try { foreach (var keyValuePair in XmlAttributeAttribute.GetXmlProperties(typeof(Tag))) { var propValue = keyValuePair.Value.GetValue(OptionTag); //only write the xml attribute if it has a value, to keep the tag concise if (propValue != null) { xml.Add(new XAttribute(keyValuePair.Key, propValue)); } } } catch (Exception e) { Console.WriteLine(e); } return(xml); }