@@ -22,7 +22,7 @@ public class OpenApiResponse : IOpenApiReferenceable, IOpenApiExtensible, IOpenA
2222 public IDictionary < string , IOpenApiHeader > ? Headers { get ; set ; } = new Dictionary < string , IOpenApiHeader > ( ) ;
2323
2424 /// <inheritdoc/>
25- public IDictionary < string , OpenApiMediaType > ? Content { get ; set ; } = new Dictionary < string , OpenApiMediaType > ( ) ;
25+ public IDictionary < string , OpenApiMediaType ? > ? Content { get ; set ; } = new Dictionary < string , OpenApiMediaType ? > ( ) ;
2626
2727 /// <inheritdoc/>
2828 public IDictionary < string , IOpenApiLink > ? Links { get ; set ; } = new Dictionary < string , IOpenApiLink > ( ) ;
@@ -43,7 +43,7 @@ internal OpenApiResponse(IOpenApiResponse response)
4343 Utils . CheckArgumentNull ( response ) ;
4444 Description = response . Description ?? Description ;
4545 Headers = response . Headers != null ? new Dictionary < string , IOpenApiHeader > ( response . Headers ) : null ;
46- Content = response . Content != null ? new Dictionary < string , OpenApiMediaType > ( response . Content ) : null ;
46+ Content = response . Content != null ? new Dictionary < string , OpenApiMediaType ? > ( response . Content ) : null ;
4747 Links = response . Links != null ? new Dictionary < string , IOpenApiLink > ( response . Links ) : null ;
4848 Extensions = response . Extensions != null ? new Dictionary < string , IOpenApiExtension > ( response . Extensions ) : null ;
4949 }
@@ -53,19 +53,20 @@ internal OpenApiResponse(IOpenApiResponse response)
5353 /// </summary>
5454 public void SerializeAsV31 ( IOpenApiWriter writer )
5555 {
56- SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_1 , ( writer , element ) => element . SerializeAsV31 ( writer ) ) ;
56+ SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_1 , ( writer , element ) => element . SerializeAsV31 ( writer ) , ( writer , element ) => element ? . SerializeAsV31 ( writer ) ) ;
5757 }
5858
5959 /// <summary>
6060 /// Serialize <see cref="OpenApiResponse"/> to Open Api v3.0.
6161 /// </summary>
6262 public void SerializeAsV3 ( IOpenApiWriter writer )
6363 {
64- SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_0 , ( writer , element ) => element . SerializeAsV3 ( writer ) ) ;
64+ SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_0 , ( writer , element ) => element . SerializeAsV3 ( writer ) , ( writer , element ) => element ? . SerializeAsV3 ( writer ) ) ;
6565 }
6666
6767 private void SerializeInternal ( IOpenApiWriter writer , OpenApiSpecVersion version ,
68- Action < IOpenApiWriter , IOpenApiSerializable > callback )
68+ Action < IOpenApiWriter , IOpenApiSerializable > callback ,
69+ Action < IOpenApiWriter , IOpenApiSerializable ? > callbackForOptionals )
6970 {
7071 Utils . CheckArgumentNull ( writer ) ;
7172
@@ -78,7 +79,7 @@ private void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersion version
7879 writer . WriteOptionalMap ( OpenApiConstants . Headers , Headers , callback ) ;
7980
8081 // content
81- writer . WriteOptionalMap ( OpenApiConstants . Content , Content , callback ) ;
82+ writer . WriteOptionalMapOfOptionals ( OpenApiConstants . Content , Content , callbackForOptionals ) ;
8283
8384 // links
8485 writer . WriteOptionalMap ( OpenApiConstants . Links , Links , callback ) ;
@@ -112,14 +113,14 @@ public void SerializeAsV2(IOpenApiWriter writer)
112113 writer . WriteOptionalObject ( OpenApiConstants . Schema , mediatype . Value . Schema , ( w , s ) => s . SerializeAsV2 ( w ) ) ;
113114
114115 // examples
115- if ( Content . Values . Any ( m => m . Example != null ) )
116+ if ( Content . Values . Any ( m => m ? . Example != null ) )
116117 {
117118 writer . WritePropertyName ( OpenApiConstants . Examples ) ;
118119 writer . WriteStartObject ( ) ;
119120
120121 foreach ( var mediaTypePair in Content )
121122 {
122- if ( mediaTypePair . Value . Example != null )
123+ if ( mediaTypePair . Value ? . Example != null )
123124 {
124125 writer . WritePropertyName ( mediaTypePair . Key ) ;
125126 writer . WriteAny ( mediaTypePair . Value . Example ) ;
@@ -129,13 +130,13 @@ public void SerializeAsV2(IOpenApiWriter writer)
129130 writer . WriteEndObject ( ) ;
130131 }
131132
132- if ( Content . Values . Any ( m => m . Examples != null && m . Examples . Any ( ) ) )
133+ if ( Content . Values . Any ( m => m ? . Examples != null && m . Examples . Any ( ) ) )
133134 {
134135 writer . WritePropertyName ( OpenApiConstants . ExamplesExtension ) ;
135136 writer . WriteStartObject ( ) ;
136137
137138 foreach ( var example in Content
138- . Select ( static x => x . Value . Examples )
139+ . Select ( static x => x . Value ? . Examples )
139140 . OfType < IDictionary < string , IOpenApiExample > > ( )
140141 . SelectMany ( static x => x ) )
141142 {
0 commit comments