Skip to content

Commit 269a215

Browse files
committed
fix: use of reflection during YAML serialization
Signed-off-by: Vincent Biret <[email protected]>
1 parent bf9954a commit 269a215

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

src/Microsoft.OpenApi/Writers/OpenApiWriterBase.cs

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -238,55 +238,53 @@ public virtual void WriteValue(object? value)
238238
return;
239239
}
240240

241-
var type = value.GetType();
242-
243-
if (type == typeof(string))
241+
if (value is string strValue)
244242
{
245-
WriteValue((string)(value));
243+
WriteValue(strValue);
246244
}
247-
else if (type == typeof(int) || type == typeof(int?))
245+
else if (value is int intValue)
248246
{
249-
WriteValue((int)value);
247+
WriteValue(intValue);
250248
}
251-
else if (type == typeof(uint) || type == typeof(uint?))
249+
else if (value is uint uintValue)
252250
{
253-
WriteValue((uint)value);
251+
WriteValue(uintValue);
254252
}
255-
else if (type == typeof(long) || type == typeof(long?))
253+
else if (value is long longValue)
256254
{
257-
WriteValue((long)value);
255+
WriteValue(longValue);
258256
}
259-
else if (type == typeof(bool) || type == typeof(bool?))
257+
else if (value is bool boolValue)
260258
{
261-
WriteValue((bool)value);
259+
WriteValue(boolValue);
262260
}
263-
else if (type == typeof(float) || type == typeof(float?))
261+
else if (value is float floatValue)
264262
{
265-
WriteValue((float)value);
263+
WriteValue(floatValue);
266264
}
267-
else if (type == typeof(double) || type == typeof(double?))
265+
else if (value is double doubleValue)
268266
{
269-
WriteValue((double)value);
267+
WriteValue(doubleValue);
270268
}
271-
else if (type == typeof(decimal) || type == typeof(decimal?))
269+
else if (value is decimal decimalValue)
272270
{
273-
WriteValue((decimal)value);
271+
WriteValue(decimalValue);
274272
}
275-
else if (type == typeof(DateTime) || type == typeof(DateTime?))
273+
else if (value is DateTime DateTimeValue)
276274
{
277-
WriteValue((DateTime)value);
275+
WriteValue(DateTimeValue);
278276
}
279-
else if (type == typeof(DateTimeOffset) || type == typeof(DateTimeOffset?))
277+
else if (value is DateTimeOffset DateTimeOffsetValue)
280278
{
281-
WriteValue((DateTimeOffset)value);
279+
WriteValue(DateTimeOffsetValue);
282280
}
283281
else if (value is IEnumerable<object> enumerable)
284282
{
285283
WriteEnumerable(enumerable);
286284
}
287285
else
288286
{
289-
throw new OpenApiWriterException(string.Format(SRResource.OpenApiUnsupportedValueType, type.FullName));
287+
throw new OpenApiWriterException(string.Format(SRResource.OpenApiUnsupportedValueType, value.GetType().FullName));
290288
}
291289
}
292290

0 commit comments

Comments
 (0)