@@ -136,6 +136,69 @@ public void AddScopedService_Works()
136
136
Assert . NotEqual ( o11 , o21 ) ;
137
137
}
138
138
139
+ [ Fact ]
140
+ public void MessageReaderIsScoped ( )
141
+ {
142
+ // Arrange
143
+ IServiceCollection services = new ServiceCollection ( ) ;
144
+ services . AddDefaultWebApiServices ( ) ;
145
+ IServiceProvider container = services . BuildServiceProvider ( ) ;
146
+
147
+ // Act
148
+ IServiceProvider scopedContainer1 = container . GetRequiredService < IServiceScopeFactory > ( )
149
+ . CreateScope ( ) . ServiceProvider ;
150
+ ODataMessageReaderSettings reader11 = scopedContainer1 . GetService < ODataMessageReaderSettings > ( ) ;
151
+ ODataMessageReaderSettings reader12 = scopedContainer1 . GetService < ODataMessageReaderSettings > ( ) ;
152
+
153
+ // Assert
154
+ Assert . NotNull ( reader11 ) ;
155
+ Assert . NotNull ( reader12 ) ;
156
+ Assert . Equal ( reader11 , reader12 ) ;
157
+
158
+ IServiceProvider scopedContainer2 = container . GetRequiredService < IServiceScopeFactory > ( )
159
+ . CreateScope ( ) . ServiceProvider ;
160
+ ODataMessageReaderSettings reader21 = scopedContainer2 . GetService < ODataMessageReaderSettings > ( ) ;
161
+ ODataMessageReaderSettings reader22 = scopedContainer2 . GetService < ODataMessageReaderSettings > ( ) ;
162
+
163
+ Assert . NotNull ( reader21 ) ;
164
+ Assert . NotNull ( reader22 ) ;
165
+ Assert . Equal ( reader21 , reader22 ) ;
166
+
167
+ Assert . NotEqual ( reader11 , reader21 ) ;
168
+ }
169
+
170
+
171
+ [ Fact ]
172
+ public void MessageWriterIsScoped ( )
173
+ {
174
+ // Arrange
175
+ IServiceCollection services = new ServiceCollection ( ) ;
176
+ services . AddDefaultWebApiServices ( ) ;
177
+ IServiceProvider container = services . BuildServiceProvider ( ) ;
178
+
179
+ // Act
180
+ IServiceProvider scopedContainer1 = container . GetRequiredService < IServiceScopeFactory > ( )
181
+ . CreateScope ( ) . ServiceProvider ;
182
+ ODataMessageWriterSettings writer11 = scopedContainer1 . GetService < ODataMessageWriterSettings > ( ) ;
183
+ ODataMessageWriterSettings writer12 = scopedContainer1 . GetService < ODataMessageWriterSettings > ( ) ;
184
+
185
+ // Assert
186
+ Assert . NotNull ( writer11 ) ;
187
+ Assert . NotNull ( writer12 ) ;
188
+ Assert . Equal ( writer11 , writer12 ) ;
189
+
190
+ IServiceProvider scopedContainer2 = container . GetRequiredService < IServiceScopeFactory > ( )
191
+ . CreateScope ( ) . ServiceProvider ;
192
+ ODataMessageWriterSettings writer21 = scopedContainer2 . GetService < ODataMessageWriterSettings > ( ) ;
193
+ ODataMessageWriterSettings writer22 = scopedContainer2 . GetService < ODataMessageWriterSettings > ( ) ;
194
+
195
+ Assert . NotNull ( writer21 ) ;
196
+ Assert . NotNull ( writer22 ) ;
197
+ Assert . Equal ( writer21 , writer22 ) ;
198
+
199
+ Assert . NotEqual ( writer11 , writer21 ) ;
200
+ }
201
+
139
202
private interface ITestService { }
140
203
141
204
private class TestService : ITestService { }
0 commit comments