2017-05-25 88 views
6

.NET Core 1.1 obsługuje metodę Type.GetInterfaces(), która zawiera listę interfejsów zaimplementowanych na danym typie. Niestety, Type.GetInterfaces() nie jest jeszcze dostępny w .NET Standard 1.x.Metoda obejścia Type.GetInterfaces() dla .NET Standard 1.x

Dobrą wiadomością jest to, że ma być zawarty w .NET Standard 2.0.

W międzyczasie, czy ktoś wie o obejściu, którego mogę użyć, aby uzyskać listę interfejsów na typie i/lub listę klas, które implementują dany interfejs w .NET Standard 1.x?

Wielkie dzięki!

Odpowiedz

8

To powinno wystarczyć. GetTypeInfo() to metoda rozszerzenia w przestrzeni nazw System.Reflection, część InstrospectionExtensions.

using System.Reflection; 
var interfaces = typeof({SOME_TYPE}).GetTypeInfo().GetInterfaces(); 
+0

Uważam, że GetInterfaces() nie jest zaimplementowany w .NET Standard 1.x. Czy jestem niewłaściwy w tym rozumieniu? –

+0

@AnthonyGatlin 'Type.GetInterfaces()' nie jest, ale 'TypeInfo.GetInterfaces()' jest. Kod używa właśnie metody rozszerzenia, aby uzyskać dostęp do 'TypeInfo' z' Type' przy użyciu metody 'GetTypeInfo()'. To działało dla mnie przy użyciu biblioteki '.NET Standard 1.6' i aplikacji konsoli .NETCoreApp1.1'. Daj mi znać, jeśli to nie działa. –

+1

Roberto, który działa jak urok. Dziękuję bardzo! :) –