@@ -28,11 +28,18 @@ namespace Microsoft.AspNetCore.Owin
28
28
Task < WebSocket >
29
29
> ;
30
30
31
+ /// <summary>
32
+ /// A loosely-typed OWIN environment wrapper over an <see cref="HttpContext"/>.
33
+ /// </summary>
31
34
public class OwinEnvironment : IDictionary < string , object >
32
35
{
33
36
private HttpContext _context ;
34
37
private IDictionary < string , FeatureMap > _entries ;
35
38
39
+ /// <summary>
40
+ /// Initializes a new instance of <see cref="OwinEnvironment"/>.
41
+ /// </summary>
42
+ /// <param name="context">The request context.</param>
36
43
public OwinEnvironment ( HttpContext context )
37
44
{
38
45
if ( context . Features . Get < IHttpRequestFeature > ( ) == null )
@@ -131,6 +138,9 @@ public OwinEnvironment(HttpContext context)
131
138
}
132
139
133
140
// Public in case there's a new/custom feature interface that needs to be added.
141
+ /// <summary>
142
+ /// Get the environment's feature maps.
143
+ /// </summary>
134
144
public IDictionary < string , FeatureMap > FeatureMaps
135
145
{
136
146
get { return _entries ; }
@@ -269,6 +279,7 @@ bool ICollection<KeyValuePair<string, object>>.Remove(KeyValuePair<string, objec
269
279
throw new NotImplementedException ( ) ;
270
280
}
271
281
282
+ /// <inheritdoc />
272
283
public IEnumerator < KeyValuePair < string , object > > GetEnumerator ( )
273
284
{
274
285
foreach ( var entryPair in _entries )
@@ -290,27 +301,63 @@ IEnumerator IEnumerable.GetEnumerator()
290
301
return GetEnumerator ( ) ;
291
302
}
292
303
304
+ /// <summary>
305
+ /// Maps OWIN keys to ASP.NET Core features.
306
+ /// </summary>
293
307
public class FeatureMap
294
308
{
309
+ /// <summary>
310
+ /// Create a <see cref="FeatureMap"/> for the specified feature interface type.
311
+ /// </summary>
312
+ /// <param name="featureInterface">The feature interface type.</param>
313
+ /// <param name="getter">Value getter.</param>
295
314
public FeatureMap ( Type featureInterface , Func < object , object > getter )
296
315
: this ( featureInterface , getter , defaultFactory : null )
297
316
{
298
317
}
318
+
319
+ /// <summary>
320
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
321
+ /// </summary>
322
+ /// <param name="featureInterface">The feature interface type.</param>
323
+ /// <param name="getter">Value getter delegate.</param>
324
+ /// <param name="defaultFactory">Default value factory delegate.</param>
299
325
public FeatureMap ( Type featureInterface , Func < object , object > getter , Func < object > defaultFactory )
300
326
: this ( featureInterface , getter , defaultFactory , setter : null )
301
327
{
302
328
}
303
329
330
+ /// <summary>
331
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
332
+ /// </summary>
333
+ /// <param name="featureInterface">The feature interface type.</param>
334
+ /// <param name="getter">Value getter delegate.</param>
335
+ /// <param name="setter">Value setter delegate.</param>
304
336
public FeatureMap ( Type featureInterface , Func < object , object > getter , Action < object , object > setter )
305
337
: this ( featureInterface , getter , defaultFactory : null , setter : setter )
306
338
{
307
339
}
308
340
341
+ /// <summary>
342
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
343
+ /// </summary>
344
+ /// <param name="featureInterface">The feature interface type.</param>
345
+ /// <param name="getter">Value getter delegate.</param>
346
+ /// <param name="defaultFactory">Default value factory delegate.</param>
347
+ /// <param name="setter">Value setter delegate.</param>
309
348
public FeatureMap ( Type featureInterface , Func < object , object > getter , Func < object > defaultFactory , Action < object , object > setter )
310
349
: this ( featureInterface , getter , defaultFactory , setter , featureFactory : null )
311
350
{
312
351
}
313
352
353
+ /// <summary>
354
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
355
+ /// </summary>
356
+ /// <param name="featureInterface">The feature interface type.</param>
357
+ /// <param name="getter">Value getter delegate.</param>
358
+ /// <param name="defaultFactory">Default value factory delegate.</param>
359
+ /// <param name="setter">Value setter delegate.</param>
360
+ /// <param name="featureFactory">Feature factory delegate.</param>
314
361
public FeatureMap ( Type featureInterface , Func < object , object > getter , Func < object > defaultFactory , Action < object , object > setter , Func < object > featureFactory )
315
362
{
316
363
FeatureInterface = featureInterface ;
@@ -326,6 +373,9 @@ public FeatureMap(Type featureInterface, Func<object, object> getter, Func<objec
326
373
private Func < object > DefaultFactory { get ; set ; }
327
374
private Func < object > FeatureFactory { get ; set ; }
328
375
376
+ /// <summary>
377
+ /// Gets a value indicating whether the feature map is settable.
378
+ /// </summary>
329
379
public bool CanSet
330
380
{
331
381
get { return Setter != null ; }
@@ -366,28 +416,59 @@ internal void Set(HttpContext context, object value)
366
416
}
367
417
}
368
418
419
+ /// <summary>
420
+ /// Maps OWIN keys to ASP.NET Core features.
421
+ /// </summary>
422
+ /// <typeparam name="TFeature">Feature interface type.</typeparam>
369
423
public class FeatureMap < TFeature > : FeatureMap
370
424
{
425
+ /// <summary>
426
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
427
+ /// </summary>
428
+ /// <param name="getter">Value getter.</param>
371
429
public FeatureMap ( Func < TFeature , object > getter )
372
430
: base ( typeof ( TFeature ) , feature => getter ( ( TFeature ) feature ) )
373
431
{
374
432
}
375
433
434
+ /// <summary>
435
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
436
+ /// </summary>
437
+ /// <param name="getter">Value getter delegate.</param>
438
+ /// <param name="defaultFactory">Default value factory delegate.</param>
376
439
public FeatureMap ( Func < TFeature , object > getter , Func < object > defaultFactory )
377
440
: base ( typeof ( TFeature ) , feature => getter ( ( TFeature ) feature ) , defaultFactory )
378
441
{
379
442
}
380
443
444
+ /// <summary>
445
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
446
+ /// </summary>
447
+ /// <param name="getter">Value getter delegate.</param>
448
+ /// <param name="setter">Value setter delegate.</param>
381
449
public FeatureMap ( Func < TFeature , object > getter , Action < TFeature , object > setter )
382
450
: base ( typeof ( TFeature ) , feature => getter ( ( TFeature ) feature ) , ( feature , value ) => setter ( ( TFeature ) feature , value ) )
383
451
{
384
452
}
385
453
454
+ /// <summary>
455
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
456
+ /// </summary>
457
+ /// <param name="getter">Value getter delegate.</param>
458
+ /// <param name="defaultFactory">Default value factory delegate.</param>
459
+ /// <param name="setter">Value setter delegate.</param>
386
460
public FeatureMap ( Func < TFeature , object > getter , Func < object > defaultFactory , Action < TFeature , object > setter )
387
461
: base ( typeof ( TFeature ) , feature => getter ( ( TFeature ) feature ) , defaultFactory , ( feature , value ) => setter ( ( TFeature ) feature , value ) )
388
462
{
389
463
}
390
464
465
+ /// <summary>
466
+ /// Initializes a new instance of <see cref="FeatureMap"/> for the specified feature interface type.
467
+ /// </summary>
468
+ /// <param name="getter">Value getter delegate.</param>
469
+ /// <param name="defaultFactory">Default value factory delegate.</param>
470
+ /// <param name="setter">Value setter delegate.</param>
471
+ /// <param name="featureFactory">Feature factory delegate.</param>
391
472
public FeatureMap ( Func < TFeature , object > getter , Func < object > defaultFactory , Action < TFeature , object > setter , Func < TFeature > featureFactory )
392
473
: base ( typeof ( TFeature ) , feature => getter ( ( TFeature ) feature ) , defaultFactory , ( feature , value ) => setter ( ( TFeature ) feature , value ) , ( ) => featureFactory ( ) )
393
474
{
0 commit comments