Skip to content

Commit 87002a4

Browse files
committed
Fixed exposing writer Settings object
1 parent abfc519 commit 87002a4

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ public static void Serialize<T>(
7474
throw new OpenApiException(string.Format(SRResource.OpenApiFormatNotSupported, format));
7575
}
7676

77-
element.Serialize(writer, specVersion);
77+
writer.Settings.SpecVersion = specVersion;
78+
79+
element.Serialize(writer);
7880
}
7981

8082
/// <summary>
@@ -86,6 +88,19 @@ public static void Serialize<T>(
8688
/// <param name="specVersion">The Open API specification version.</param>
8789
public static void Serialize<T>(this T element, IOpenApiWriter writer, OpenApiSpecVersion specVersion)
8890
where T : IOpenApiSerializable
91+
{
92+
writer.Settings.SpecVersion = specVersion;
93+
element.Serialize(writer);
94+
}
95+
96+
/// <summary>
97+
/// Serializes the <see cref="IOpenApiSerializable"/> to Open API document using the given specification version and writer.
98+
/// </summary>
99+
/// <typeparam name="T">the <see cref="IOpenApiSerializable"/></typeparam>
100+
/// <param name="element">The Open API element.</param>
101+
/// <param name="writer">The output writer.</param>
102+
public static void Serialize<T>(this T element, IOpenApiWriter writer)
103+
where T : IOpenApiSerializable
89104
{
90105
if (element == null)
91106
{
@@ -97,7 +112,7 @@ public static void Serialize<T>(this T element, IOpenApiWriter writer, OpenApiSp
97112
throw Error.ArgumentNull(nameof(writer));
98113
}
99114

100-
switch (specVersion)
115+
switch (writer.Settings.SpecVersion)
101116
{
102117
case OpenApiSpecVersion.OpenApi3_0:
103118
element.SerializeAsV3(writer);
@@ -108,24 +123,12 @@ public static void Serialize<T>(this T element, IOpenApiWriter writer, OpenApiSp
108123
break;
109124

110125
default:
111-
throw new OpenApiException(string.Format(SRResource.OpenApiSpecVersionNotSupported, specVersion));
126+
throw new OpenApiException(string.Format(SRResource.OpenApiSpecVersionNotSupported, writer.Settings.SpecVersion));
112127
}
113128

114129
writer.Flush();
115130
}
116131

117-
/// <summary>
118-
/// Serializes the <see cref="IOpenApiSerializable"/> to Open API document using the given specification version and writer.
119-
/// </summary>
120-
/// <typeparam name="T">the <see cref="IOpenApiSerializable"/></typeparam>
121-
/// <param name="element">The Open API element.</param>
122-
/// <param name="writer">The output writer.</param>
123-
public static void Serialize<T>(this T element, IOpenApiWriter writer)
124-
where T : IOpenApiSerializable
125-
{
126-
element.Serialize(writer, writer.Settings.SpecVersion);
127-
}
128-
129132
/// <summary>
130133
/// Serializes the <see cref="IOpenApiSerializable"/> to the Open API document as a string in JSON format.
131134
/// </summary>

src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ public OpenApiWriterBase(TextWriter textWriter, OpenApiSerializerSettings settin
5151
/// <summary>
5252
/// Returns the settings being used the Writer for controlling serialization
5353
/// </summary>
54-
public OpenApiSerializerSettings Settings { get; }
54+
public OpenApiSerializerSettings Settings {
55+
get
56+
{
57+
return _settings;
58+
}
59+
}
5560

5661
/// <summary>
5762
/// Base Indentation Level.

src/Microsoft.OpenApi/Writers/OpenApiYamlWriter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class OpenApiYamlWriter : OpenApiWriterBase
1515
/// </summary>
1616
/// <param name="textWriter">The text writer.</param>
1717
public OpenApiYamlWriter(TextWriter textWriter)
18-
: this(textWriter, new OpenApiSerializerSettings())
18+
: this(textWriter, new OpenApiSerializerSettings() { Format = OpenApiFormat.Yaml })
1919
{
2020
}
2121

0 commit comments

Comments
 (0)