Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs
Markus Isberg 7547a9b78a Build 0.18.0.0
2022-05-13 00:55:52 +09:00

20 lines
584 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Barotrauma
{
public static class ReflectionUtils
{
private static Type[] cachedNonAbstractTypes;
public static IEnumerable<Type> GetDerivedNonAbstract<T>()
{
if (cachedNonAbstractTypes == null)
{
cachedNonAbstractTypes = Assembly.GetEntryAssembly().GetTypes().Where(t => !t.IsAbstract).ToArray();
}
return cachedNonAbstractTypes.Where(t => t.IsSubclassOf(typeof(T)));
}
}
}