diff --git a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs index 6113eed120..558a835211 100644 --- a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs +++ b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs @@ -62,8 +62,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers private static IEnumerable GetAttributeDescriptors(Type type) { - var typeInfo = type.GetTypeInfo(); - var properties = typeInfo.DeclaredProperties.Where(IsValidProperty); + var properties = type.GetRuntimeProperties().Where(IsValidProperty); var attributeDescriptors = properties.Select(ToAttributeDescriptor); return attributeDescriptors; diff --git a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs index 8aee286fd6..0338609ece 100644 --- a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs +++ b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs @@ -22,6 +22,28 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers Assert.Equal(descriptor, expectedDescriptor, CompleteTagHelperDescriptorComparer.Default); } + [Fact] + public void CreateDescriptor_BuildsDescriptorsWithInheritedProperties() + { + // Arrange + var intProperty = typeof(InheritedSingleAttributeTagHelper).GetProperty( + nameof(InheritedSingleAttributeTagHelper.IntAttribute)); + var expectedDescriptor = new TagHelperDescriptor( + "InheritedSingleAttribute", + typeof(InheritedSingleAttributeTagHelper).FullName, + ContentBehavior.None, + new[] { + new TagHelperAttributeDescriptor(nameof(InheritedSingleAttributeTagHelper.IntAttribute), intProperty) + }); + + // Act + var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(InheritedSingleAttributeTagHelper)); + + // Assert + var descriptor = Assert.Single(descriptors); + Assert.Equal(descriptor, expectedDescriptor, CompleteTagHelperDescriptorComparer.Default); + } + [Fact] public void CreateDescriptor_BuildsDescriptorsWithConventionNames() { @@ -257,5 +279,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers private class MultipleAttributeTagHelper { } + + private class InheritedSingleAttributeTagHelper : SingleAttributeTagHelper + { + } } } \ No newline at end of file diff --git a/test/Microsoft.AspNet.Razor.Runtime.Test/project.json b/test/Microsoft.AspNet.Razor.Runtime.Test/project.json index 13e115d4fe..0958298943 100644 --- a/test/Microsoft.AspNet.Razor.Runtime.Test/project.json +++ b/test/Microsoft.AspNet.Razor.Runtime.Test/project.json @@ -8,6 +8,6 @@ "test": "Xunit.KRunner" }, "frameworks": { - "net45": { } + "aspnet50": { } } }