bool HasDefaultConstructor(Type type) { if (type.IsValueType) { return true; } var defaultConstructor = type.GetConstructor(TypeExtensions.EmptyTypes); return defaultConstructor != null; }