À l'aide de Réflexion .NET de Base

Pour le développement cross plate-forme, je suis en train de faire un .NET de Base de la bibliothèque partagée. J'ai utilisé le Class Library (package) modèle de projet dans VS 2015. Ma bibliothèque a besoin d'utiliser un couple de réflexion mécanismes, je suis familier avec de la pleine .net 4 cadre, mais je ne sais pas maintenant comment accéder à ces dans une .NET de Base de la bibliothèque. Plus précisément:

  • La Delegate type a un Method propriété qui renvoie un MethodInfo objet.
  • La Type classe a un BaseType propriété, FilterName propriété, InvokeMember méthode et FindMembers méthode que je ne peut pas atteindre dans .NET de Base.

J'ai ajouté les packages NuGet qui auraient la réflexion pièces dont j'ai besoin:

"frameworks": {
  "net451": {
    "dependencies": {
      "System.Reflection": "4.1.0-beta-23516",
      "System.Reflection.Extensions": "4.0.1-beta-23516",
      "System.Reflection.Primitives": "4.0.1-beta-23516",
    }
  },
  "dotnet5.4": {
    "dependencies": {
      "Microsoft.CSharp": "4.0.1-beta-23516",
      "System.Collections": "4.0.11-beta-23516",
      "System.Linq": "4.0.1-beta-23516",
      "System.Reflection": "4.1.0-beta-23516",
      "System.Reflection.Extensions": "4.0.1-beta-23516",
      "System.Reflection.Primitives": "4.0.1-beta-23516",
      "System.Runtime": "4.0.21-beta-23516",
      "System.Threading": "4.0.11-beta-23516"
    }
  }
},
"dependencies": {
  "System.Reflection.TypeExtensions": "4.1.0-beta-23516"
}

J'ai aussi ajouté using System.Reflection, mais je suis encore à obtenir des erreurs qui indiquent que ces propriétés et les types ne sont pas définis.

Ce que je fais mal?

Dans le cas où il est pertinent, sur cette même machine, la commande dnvm list montre:

Active Version           Runtime Architecture OperatingSystem Alias  
------ -------           ------- ------------ --------------- -----  
    1.0.0-rc1-update1 clr     x64          win                    
    1.0.0-rc1-update1 clr     x86          win                    
    1.0.0-rc1-update1 coreclr x64          win                    
*    1.0.0-rc1-update1 coreclr x86          win             default

Le dessus est exactement ce que je veux...ou au moins ce que je pense que je veux. 😉

  • .net de Base est encore en cours de développement et n'est pas complète. Il est possible Système.La réflexion n'est pas porté dans .net de base encore.
  • Au moins pour le BaseType vous pouvez utiliser type.GetTypeInfo().BaseType, c'est là où il a été déplacé depuis WinRT/UWP (qui est à peu près sur quoi .NET de Base est basé sur le System.Runtime). Beaucoup de la norme appels ont été retirés derrière GetTypeInfo() et des méthodes similaires
  • Lorsque vous obtenez des erreurs? Quelles sont ces erreurs?
InformationsquelleAutor Brent Arias | 2016-03-20