private static Type[] ExtractGenericArguments(Type typeToExtractGenericArguments) { if (typeToExtractGenericArguments.IsGenericType) { return typeToExtractGenericArguments.GetGenericArguments(); } return Type.EmptyTypes; }