protected virtual bool ShouldTypeBeIgnored(Type type, XmlSerializerTypeInfo serializerTypeInfo)
{
if (type == null)
{
return true;
}
// Never include generic type definitions, otherwise we will get this:
// Error while getting known types for Type 'Catel.Test.Data.PropertyDataManagerFacts+SupportsGenericClasses+GenericClass`1[T]'. The type must not be an open or partial generic class.
if (type.IsGenericTypeDefinitionEx())
{
return true;
}
// Note, although resharper says this isn't possible, it might be
var fullName = type.GetSafeFullName(false);
if (string.IsNullOrWhiteSpace(fullName))
{
serializerTypeInfo.AddTypeAsHandled(type);
return true;
}
// Ignore non-generic .NET
if (!type.IsGenericTypeEx() && fullName.StartsWith("System."))
{
// Log.Debug("Non-generic .NET system type, can be ignored");
serializerTypeInfo.AddTypeAsHandled(type);
return true;
}
if (type.IsCOMObjectEx())
{
serializerTypeInfo.AddTypeAsHandled(type);
return true;
}
return serializerTypeInfo.ContainsKnownType(type) ||
serializerTypeInfo.IsTypeAlreadyHandled(type) ||
serializerTypeInfo.IsCollectionAlreadyHandled(type);
}