public static bool HasDefaultConstructor(this Type type) { var typeInfo = type.GetTypeInfo(); return typeInfo.IsValueType || typeInfo.DeclaredConstructors .Any(c => c.IsPublic && !c.IsStatic && c.GetParameters().Length == 0); }