發表文章

目前顯示的是 12月, 2022的文章

[C#]取得繼承介面的所有類別( get all the types that inherit from the given interface)

圖片
 問題: 近來在思考是否能取得繼承介面的所有類別,以方便往後做自動註冊使用。 情境: 我有一個interface[ITestInterfaceService],與繼承[ITestInterfaceService]的兩個類別[A]與[B]如下圖, 問題是該如何取得繼承介面的所有類別,也就是類別A與B。 實作: public static Type[] GetInheritedInterfaceTypes(Type interfaceType) { var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => interfaceType.IsAssignableFrom(p) && !p.IsInterface).ToArray(); return types; }