How to check if a type is abstract in .NET Core?

2019-06-15 19:18发布

问题:

This code works fine in .NET (4.6 and prior)

var types = typeof(SomeType).GetTypeInfo().Assembly.GetTypes()
from type in types
where !type.IsAbstract

but in .NET Core (DNX Core 5.0) it is producing a compile error:

Error CS1061 'Type' does not contain a definition for 'IsAbstract' and no extension method 'IsAbstract' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)

So how can I check if a type is abstract in DNX Core 5.0 the way I do it in .NET Framework 4.6?

回答1:

I am posting one of the comments as an answer since it is what I was asking for:

type.GetTypeInfo().IsAbstract