public override void Write(SerializationContext serializationContext, ModelElement element, XmlWriter writer, RootElementSettings rootElementSettings) { #region Check Parameters Debug.Assert(element != null); if (element == null) { throw new ArgumentNullException("element"); } #endregion // On ne serialise que si ce n'est pas la valeur par défaut DependencyProperty instanceOfDependencyProperty = element as DependencyProperty; IDependencyProperty dp = DependencyPropertyRegistry.Instance.FindDependencyProperty(instanceOfDependencyProperty.StrategyId, instanceOfDependencyProperty.Name); object defaultValue = dp != null?dp.GetDefaultValue() : null; string defaultValueAsString = defaultValue != null?defaultValue.ToString() : String.Empty; if (instanceOfDependencyProperty.Value != null && dp != null && !Utils.StringCompareEquals(instanceOfDependencyProperty.Value.ToString(), defaultValueAsString)) { base.Write(serializationContext, element, writer, rootElementSettings); } }
public string ConvertLayoutInfoToString(LayoutInfo info) { string result = String.Empty; Microsoft.VisualStudio.Modeling.SerializationResult serializationResult = new Microsoft.VisualStudio.Modeling.SerializationResult(); DomainXmlSerializerDirectory directory = this.GetDirectory(info.Store); System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); Microsoft.VisualStudio.Modeling.SerializationContext serializationContext = new SerializationContext(directory, "", serializationResult); this.InitializeSerializationContext(info.Partition, serializationContext, false); global::System.IO.MemoryStream newFileContent = new global::System.IO.MemoryStream(); global::System.Xml.XmlWriterSettings settings = DiagramsDSLSerializationHelper.Instance.CreateXmlWriterSettings(serializationContext, false, encoding); using (global::System.Xml.XmlWriter writer = global::System.Xml.XmlWriter.Create(newFileContent, settings)) { DomainClassXmlSerializer rootSerializer = directory.GetSerializer(LayoutInfo.DomainClassId); RootElementSettings rootElementSettings = new RootElementSettings(); rootElementSettings.SchemaTargetNamespace = "http://schemas.microsoft.com/dsltools/DiagramsDSL"; rootElementSettings.Version = new global::System.Version("1.0.0.0"); // Carry out the normal serialization. rootSerializer.Write(serializationContext, info, writer, rootElementSettings); } char[] chars = encoding.GetChars(newFileContent.GetBuffer()); // search the open angle bracket and trim off the Byte Of Mark. result = new string(chars); int indexPos = result.IndexOf('<'); if (indexPos > 0) { // strip off the leading Byte Of Mark. result = result.Substring(indexPos); } // trim off trailing 0s. result = result.TrimEnd('\0'); return(result); }
public string ConvertLayoutInfoToString(LayoutInfo info) { string result = String.Empty; Microsoft.VisualStudio.Modeling.SerializationResult serializationResult = new Microsoft.VisualStudio.Modeling.SerializationResult(); DomainXmlSerializerDirectory directory = this.GetDirectory(info.Store); System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); Microsoft.VisualStudio.Modeling.SerializationContext serializationContext = new SerializationContext(directory, "", serializationResult); this.InitializeSerializationContext(info.Partition, serializationContext, false); global::System.IO.MemoryStream newFileContent = new global::System.IO.MemoryStream(); global::System.Xml.XmlWriterSettings settings = DiagramsDSLSerializationHelper.Instance.CreateXmlWriterSettings(serializationContext, false, encoding); using (global::System.Xml.XmlWriter writer = global::System.Xml.XmlWriter.Create(newFileContent, settings)) { DomainClassXmlSerializer rootSerializer = directory.GetSerializer(LayoutInfo.DomainClassId); RootElementSettings rootElementSettings = new RootElementSettings(); rootElementSettings.SchemaTargetNamespace = "http://schemas.microsoft.com/dsltools/DiagramsDSL"; rootElementSettings.Version = new global::System.Version("1.0.0.0"); // Carry out the normal serialization. rootSerializer.Write(serializationContext, info, writer, rootElementSettings); } char[] chars = encoding.GetChars(newFileContent.GetBuffer()); // search the open angle bracket and trim off the Byte Of Mark. result = new string(chars); int indexPos = result.IndexOf('<'); if (indexPos > 0) { // strip off the leading Byte Of Mark. result = result.Substring(indexPos); } // trim off trailing 0s. result = result.TrimEnd('\0'); return result; }
/// <summary> /// Public Write() method that serializes one PatternModelSchemaDiagram instance into XML. /// </summary> /// <param name="serializationContext">Serialization context.</param> /// <param name="element">PatternModelSchemaDiagram instance to be serialized.</param> /// <param name="writer">XmlWriter to write serialized data to.</param> /// <param name="rootElementSettings">The root element settings if the passed in element is serialized as a root element in the XML. The root element contains additional /// information like schema target namespace, version, etc. /// This should only be passed for root-level elements. Null should be passed for rest elements (and ideally call the Write() method /// without this parameter).</param> public override void Write(SerializationContext serializationContext, ModelElement element, XmlWriter writer, RootElementSettings rootElementSettings) { Guard.NotNull(() => serializationContext, serializationContext); Guard.NotNull(() => element, element); Guard.NotNull(() => writer, writer); Guard.NotNull(() => rootElementSettings, rootElementSettings); if (rootElementSettings != null && !string.IsNullOrEmpty(rootElementSettings.SchemaTargetNamespace)) { writer.WriteStartElement(this.XmlTagName, rootElementSettings.SchemaTargetNamespace); SerializationUtilities.WriteDomainModelNamespaces(serializationContext.Directory, writer, rootElementSettings.SchemaTargetNamespace); } else { writer.WriteStartElement(this.XmlTagName); } if (rootElementSettings != null && rootElementSettings.Version != null) { writer.WriteAttributeString("dslVersion", rootElementSettings.Version.ToString(4)); } writer.WriteAttributeString("Id", element.Id.ToString("D", CultureInfo.CurrentCulture)); this.WritePropertiesAsAttributes(serializationContext, element, writer); if (rootElementSettings != null && !serializationContext.Result.Failed) { PatternModelSerializationHelper.Instance.WriteExtensions(serializationContext, element, writer); } if (!serializationContext.Result.Failed) { WriteElements(serializationContext, element, writer); } writer.WriteEndElement(); }
private void CustomWrite(SerializationContext context, ModelElement element, XmlWriter writer, RootElementSettings rootElementSettings) { DefaultWrite(context, element, writer, rootElementSettings); }
private void CustomWrite(SerializationContext serializationContext, ModelElement element, global::System.Xml.XmlWriter writer, RootElementSettings rootElementSettings) { DomainType domainType = (DomainType)element; if (!domainType.IsBuildIn) { DefaultWrite(serializationContext, element, writer, rootElementSettings); } }
/// <summary> /// Public Write() method that serializes the ModelElement instance associated with this serializer instance into XML. /// </summary> /// <param name="serializationContext">Serialization context.</param> /// <param name="element">ModelElement instance that will be serialized.</param> /// <param name="writer">XmlWriter to write serialized data to.</param> /// <param name="rootElementSettings"></param> /// <param name="options">Serialization options.</param> public abstract void Write(SerializationContext serializationContext, ModelElement element, XmlWriter writer, RootElementSettings rootElementSettings, SerializationOptions options);