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().DeclaredPropertiesNotice that this property returns
IEnumerable<PropertyInfo>, notPropertyInfo[]as previous two methods.
Most reflection-related members on System.Type are now on System.Reflection.TypeInfo.
First call GetTypeInfo to get a TypeInfo instance from a Type:
typeof(Object).GetTypeInfo().GetProperties();
Also, don't forget to use using System.Reflection;
来源:https://stackoverflow.com/questions/42029808/type-does-not-contain-a-definition-for-getproperties