Für die plattformübergreifende Entwicklung versuche ich, eine gemeinsam genutzte .NET Core-Bibliothek zu erstellen. Ich habe die Projektvorlage Class Library (package)
in VS 2015 verwendet. Meine Bibliothek muss einige Reflektionsmechanismen verwenden, die mir aus dem vollständigen .net 4-Framework bekannt sind, aber ich weiß jetzt nicht, wie ich auf diese in einer .NET Core-Bibliothek zugreifen kann. Im Einzelnen:Verwenden von Reflection in .NET Core
Delegate
Der Typ hat eine Eigenschaft, die eineMethod
MethodInfo
Objekt zurückgibt.- Die
Type
Klasse hat eineBaseType
Eigenschaft,FilterName
Eigenschaft,InvokeMember
Methode undFindMembers
Methode, die ich in .NET Core nicht erreichen kann.
Ich habe NuGet Pakete, die angeblich die Reflexion Stücke, die ich brauche haben:
"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"
}
ich auch using System.Reflection
hinzugefügt haben, aber ich bin immer noch Fehlermeldungen erhalten, die nicht definiert sind diese Eigenschaften und Typen zeigen, dass.
Was mache ich falsch?
Falls es relevant, auf derselben Maschine mit dem Befehl dnvm list
zeigt:
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
Die oben ist genau das, was ich will ... oder zumindest das, was ich denke, ich will. ;)
.net Core ist noch in der Entwicklung und ist nicht vollständig. Es ist möglich, dass System.Reflection noch nicht in .net core portiert ist. – Saleem
Zumindest für den 'BaseType' können Sie' type.GetTypeInfo(). BaseType' verwenden, da seit WinRT/UWP (das ist ungefähr auf was .NET Core basiert, die 'System.Runtime '). Viele der Standardaufrufe wurden hinter 'GetTypeInfo()' und ähnlichen Methoden entfernt. – Tseng
Wann bekommen Sie Fehler? Was sind diese Fehler? –