private static TypeEngine Create(Type type) { TypeEngine descriptor = new TypeEngine(); descriptor.Persist = new DataPersist(type, null, AllowNull.OnlyMembers); if (DataTypeUtils.IsAllPrimitive(type) || type == typeof(Guid)) { descriptor.Comparer = new DataComparer(type); descriptor.EqualityComparer = new DataEqualityComparer(type); if (type != typeof(Guid)) { descriptor.IndexerPersist = new DataIndexerPersist(type); } } return(descriptor); }