2017-02-03 7 views
12

ich ein Bibliotheksprojekt zu einem .net Standard bin Migration und ich erhalte die folgenden Kompilierungsfehler, wenn ich versuche, die System.Reflection API verwenden Type:GetProperties() zu nennen:Typ enthält keine Definition für ‚GetProperties‘

Typ enthält keine Definition für 'GetProperties'

Hier ist meine project.json:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable" 
    }, 
    "dependencies": {}, 
    "frameworks": { 
    "netstandard1.6": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    } 
} 

Was fehlt mir?

Antwort

9

Ab schreibe dies zu verwenden, ist GetProperties() jetzt:

typeof(Object).GetTypeInfo().DeclaredProperties;

9

aktualisieren: mit .NET Core 2.0 Release der System.Type zurückkommen und so beide Optionen stehen zur Verfügung:

  • typeof(Object).GetType().GetProperties()
  • typeof(Object).GetTypeInfo().GetProperties()

    Dieses erfordert das Hinzufügen using System.Reflection;

  • typeof(Object).GetTypeInfo().DeclaredProperties

    Beachten Sie, dass diese Eigenschaft wie zuvor zwei Methoden IEnumerable<PropertyInfo>, nicht PropertyInfo[] zurückgibt.


meisten reflexions verwandte Mitglieder auf System.Type sind jetzt auf System.Reflection.TypeInfo.

Erster Aufruf GetTypeInfo eine TypeInfo Instanz von einem Type zu bekommen:

typeof(Object).GetTypeInfo().GetProperties(); 

Auch vergessen Sie nicht using System.Reflection;

+0

Das stimmt. Aber ich denke, Sie haben einen Tippfehler in Ihrer Antwort. Es ist 'typeof (Object) .GetTypeInfo(). GetProperties();' –

+0

@MiguelGamboa yep, meine schlechte, bearbeitet – Set

Verwandte Themen