diff --git a/src/Microsoft.AspNetCore.Blazor/Components/ComponentFactory.cs b/src/Microsoft.AspNetCore.Blazor/Components/ComponentFactory.cs index 0b5c644ce9..ffcdd4828b 100644 --- a/src/Microsoft.AspNetCore.Blazor/Components/ComponentFactory.cs +++ b/src/Microsoft.AspNetCore.Blazor/Components/ComponentFactory.cs @@ -55,8 +55,8 @@ namespace Microsoft.AspNetCore.Blazor.Components private Action CreateInitializer(Type type) { // Do all the reflection up front - var injectableProperties = type.GetTypeInfo() - .GetPropertiesIncludingInherited(_injectablePropertyBindingFlags) + var injectableProperties = + GetPropertiesIncludingInherited(type, _injectablePropertyBindingFlags) .Where(p => p.GetCustomAttribute() != null); var injectables = injectableProperties.Select(property => { @@ -114,5 +114,21 @@ namespace Microsoft.AspNetCore.Blazor.Components public void SetValue(object target, object value) => _setterDelegate((TTarget)target, (TValue)value); } + + private static IEnumerable GetPropertiesIncludingInherited( + Type type, BindingFlags bindingFlags) + { + while (type != null) + { + var properties = type.GetProperties(bindingFlags) + .Where(prop => prop.DeclaringType == type); + foreach (var property in properties) + { + yield return property; + } + + type = type.BaseType; + } + } } } diff --git a/src/Microsoft.AspNetCore.Blazor/TypeInfoExtensions.cs b/src/Microsoft.AspNetCore.Blazor/TypeInfoExtensions.cs deleted file mode 100644 index c512230f7c..0000000000 --- a/src/Microsoft.AspNetCore.Blazor/TypeInfoExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Reflection; - -namespace Microsoft.AspNetCore.Blazor -{ - public static class TypeInfoExtensions - { - public static IEnumerable GetPropertiesIncludingInherited(this TypeInfo typeInfo, BindingFlags bindingFlags) - { - while (typeInfo != null) - { - var properties = typeInfo.GetProperties(bindingFlags) - .Where(prop => prop.ReflectedType == prop.DeclaringType); - foreach (var property in properties) - yield return property; - - typeInfo = typeInfo.BaseType?.GetTypeInfo(); - } - } - } -} \ No newline at end of file