public virtual bool CanAutoAddType(Type type)
 {
     if (type == null)
     {
         throw new ArgumentNullException(nameof(type));
     }
     if (!RuntimeTypeModel.CheckTypeCanBeAdded(Model, type))
     {
         return(false);
     }
     return(GetContractFamily(type) != AttributeFamily.None ||
            RuntimeTypeModel.CheckTypeDoesntRequireContract(Model, type));
 }