Minor RVD and EndpointMetadataCollection refactors (#708)
This commit is contained in:
parent
967afc3b0f
commit
4f33362ab5
|
|
@ -112,8 +112,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
var items = new List<T>();
|
var items = new List<T>();
|
||||||
for (var i = 0; i < _items.Length; i++)
|
for (var i = 0; i < _items.Length; i++)
|
||||||
{
|
{
|
||||||
var item = _items[i] as T;
|
if (_items[i] is T item)
|
||||||
if (item != null)
|
|
||||||
{
|
{
|
||||||
items.Add(item);
|
items.Add(item);
|
||||||
}
|
}
|
||||||
|
|
@ -150,19 +149,18 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
// Intentionally not readonly to prevent defensive struct copies
|
// Intentionally not readonly to prevent defensive struct copies
|
||||||
private object[] _items;
|
private object[] _items;
|
||||||
private int _index;
|
private int _index;
|
||||||
private object _current;
|
|
||||||
|
|
||||||
internal Enumerator(EndpointMetadataCollection collection)
|
internal Enumerator(EndpointMetadataCollection collection)
|
||||||
{
|
{
|
||||||
_items = collection._items;
|
_items = collection._items;
|
||||||
_index = 0;
|
_index = 0;
|
||||||
_current = null;
|
Current = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the element at the current position of the enumerator
|
/// Gets the element at the current position of the enumerator
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public object Current => _current;
|
public object Current { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Releases all resources used by the <see cref="Enumerator"/>.
|
/// Releases all resources used by the <see cref="Enumerator"/>.
|
||||||
|
|
@ -182,11 +180,11 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
if (_index < _items.Length)
|
if (_index < _items.Length)
|
||||||
{
|
{
|
||||||
_current = _items[_index++];
|
Current = _items[_index++];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_current = null;
|
Current = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -196,7 +194,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
public void Reset()
|
public void Reset()
|
||||||
{
|
{
|
||||||
_index = 0;
|
_index = 0;
|
||||||
_current = null;
|
Current = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -222,13 +222,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerable<string> IReadOnlyDictionary<string, object>.Keys
|
IEnumerable<string> IReadOnlyDictionary<string, object>.Keys => Keys;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return Keys;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public ICollection<object> Values
|
public ICollection<object> Values
|
||||||
|
|
@ -248,13 +242,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerable<object> IReadOnlyDictionary<string, object>.Values
|
IEnumerable<object> IReadOnlyDictionary<string, object>.Values => Values;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return Values;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
void ICollection<KeyValuePair<string, object>>.Add(KeyValuePair<string, object> item)
|
void ICollection<KeyValuePair<string, object>>.Add(KeyValuePair<string, object> item)
|
||||||
|
|
@ -565,7 +553,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
|
|
||||||
internal class PropertyStorage
|
internal class PropertyStorage
|
||||||
{
|
{
|
||||||
private static readonly PropertyCache _propertyCache = new PropertyCache();
|
private static readonly ConcurrentDictionary<Type, PropertyHelper[]> _propertyCache = new ConcurrentDictionary<Type, PropertyHelper[]>();
|
||||||
|
|
||||||
public readonly object Value;
|
public readonly object Value;
|
||||||
public readonly PropertyHelper[] Properties;
|
public readonly PropertyHelper[] Properties;
|
||||||
|
|
@ -606,9 +594,5 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PropertyCache : ConcurrentDictionary<Type, PropertyHelper[]>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue