I am migrating a library project to a .net standard and I am getting the following compilation error when I try to use the System.Reflection
API to call Type:GetProperties()
:
Type does not contain a definition for 'GetProperties'
Here it is my project.json
:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {},
"frameworks": {
"netstandard1.6": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
}
}
}
What am I missing?
As of writing this,
GetProperties()
is now:typeof(Object).GetTypeInfo().DeclaredProperties;
Update: with .NET COre 2.0 release the
System.Type
come back and so both options are available:typeof(Object).GetType().GetProperties()
typeof(Object).GetTypeInfo().GetProperties()
This one requires adding
using System.Reflection;
typeof(Object).GetTypeInfo().DeclaredProperties
Notice that this property returns
IEnumerable<PropertyInfo>
, notPropertyInfo[]
as previous two methods.Most reflection-related members on
System.Type
are now onSystem.Reflection.TypeInfo
.First call
GetTypeInfo
to get aTypeInfo
instance from aType
:Also, don't forget to use
using System.Reflection;