diff --git a/src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs b/src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs old mode 100644 new mode 100755 index e14c98340..4694692ad --- a/src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs +++ b/src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs @@ -41,6 +41,25 @@ public static void SerializeAsYaml(this T element, Stream stream, OpenApiSpec element.Serialize(stream, specVersion, OpenApiFormat.Yaml); } + /// + /// Serializes the to the Open API document using + /// the given stream, specification version and the format. + /// + /// the + /// The Open API element. + /// The given stream. + /// The Open API specification version. + /// The output format (JSON or YAML). + public static void Serialize( + this T element, + Stream stream, + OpenApiSpecVersion specVersion, + OpenApiFormat format) + where T : IOpenApiSerializable + { + element.Serialize(stream, specVersion, format, null); + } + /// /// Serializes the to the Open API document using /// the given stream, specification version and the format. @@ -56,7 +75,7 @@ public static void Serialize( Stream stream, OpenApiSpecVersion specVersion, OpenApiFormat format, - OpenApiWriterSettings settings = null) + OpenApiWriterSettings settings) where T : IOpenApiSerializable { if (stream == null) diff --git a/src/Microsoft.OpenApi/Writers/OpenApiJsonWriter.cs b/src/Microsoft.OpenApi/Writers/OpenApiJsonWriter.cs old mode 100644 new mode 100755 index e4c3baa3c..72e74a51e --- a/src/Microsoft.OpenApi/Writers/OpenApiJsonWriter.cs +++ b/src/Microsoft.OpenApi/Writers/OpenApiJsonWriter.cs @@ -10,12 +10,20 @@ namespace Microsoft.OpenApi.Writers /// public class OpenApiJsonWriter : OpenApiWriterBase { + /// + /// Initializes a new instance of the class. + /// + /// The text writer. + public OpenApiJsonWriter(TextWriter textWriter) : base(textWriter, null) + { + } + /// /// Initializes a new instance of the class. /// /// The text writer. /// Settings for controlling how the OpenAPI document will be written out. - public OpenApiJsonWriter(TextWriter textWriter, OpenApiWriterSettings settings = null) : base(textWriter, settings) + public OpenApiJsonWriter(TextWriter textWriter, OpenApiWriterSettings settings) : base(textWriter, settings) { } diff --git a/src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs b/src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs old mode 100644 new mode 100755 index bcbec6b47..6d7f3f64d --- a/src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs +++ b/src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.IO; using Microsoft.OpenApi.Exceptions; -using Microsoft.OpenApi.Models; using Microsoft.OpenApi.Properties; namespace Microsoft.OpenApi.Writers @@ -40,12 +39,8 @@ public abstract class OpenApiWriterBase : IOpenApiWriter /// Initializes a new instance of the class. /// /// The text writer. - public OpenApiWriterBase(TextWriter textWriter) + public OpenApiWriterBase(TextWriter textWriter) : this(textWriter, null) { - Writer = textWriter; - Writer.NewLine = "\n"; - - Scopes = new Stack(); } /// @@ -53,12 +48,18 @@ public OpenApiWriterBase(TextWriter textWriter) /// /// /// - public OpenApiWriterBase(TextWriter textWriter, OpenApiWriterSettings settings = null) : this(textWriter) + public OpenApiWriterBase(TextWriter textWriter, OpenApiWriterSettings settings) { + Writer = textWriter; + Writer.NewLine = "\n"; + + Scopes = new Stack(); + if (settings == null) { settings = new OpenApiWriterSettings(); } + Settings = settings; } diff --git a/src/Microsoft.OpenApi/Writers/OpenApiYamlWriter.cs b/src/Microsoft.OpenApi/Writers/OpenApiYamlWriter.cs old mode 100644 new mode 100755 index ee7543b93..2806d3d64 --- a/src/Microsoft.OpenApi/Writers/OpenApiYamlWriter.cs +++ b/src/Microsoft.OpenApi/Writers/OpenApiYamlWriter.cs @@ -10,14 +10,21 @@ namespace Microsoft.OpenApi.Writers /// public class OpenApiYamlWriter : OpenApiWriterBase { + /// + /// Initializes a new instance of the class. + /// + /// The text writer. + public OpenApiYamlWriter(TextWriter textWriter) : this(textWriter, null) + { + } + /// /// Initializes a new instance of the class. /// /// The text writer. /// - public OpenApiYamlWriter(TextWriter textWriter, OpenApiWriterSettings settings = null) : base(textWriter, settings) + public OpenApiYamlWriter(TextWriter textWriter, OpenApiWriterSettings settings) : base(textWriter, settings) { - } ///