The DB class has a new property TypeRules with a method
public TypeDefinitions IgnoreType(Type type)
which performs so called type filtering.
The type filtering feature allows ignoring some specific types (and their descendants) from being added into the database. All objects or fields or properties of ignored types will not appear in the database.
Fields and properties of ignored types will have their default values (usually null) when returned by a query.
The following types are automatically added into the ignored types list:
• System.Runtime.ConstrainedExecution.CriticalFinalizerObject
• System.Type
• System.Reflection.Assembly
• System.AppDomain
• System.ActivationContext
• System.Exception
• System.AppDomainManager
• System.IAppDomainSetup
• System.ApplicationId
• System.ApplicationIdentity
• System.Attribute
• System.Threading.WaitHandle
• System.Runtime.InteropServices._AssemblyName
• System.Reflection.Binder
• System.IntPtr
• System.Signature
• System.WeakReference
• System.Threading.Timer
• System.Threading.TimerBase
• System.Threading.SynchronizationContext
• System.Threading.Overlapped
• System.IntPtr
• System.Windows.Threading.Dispatcher
• System.Windows.DependencyProperty
• System.Threading.CompressedStack
• System.Threading.Monitor
• System.IO.Stream
• System.Runtime.Serialization.SerializationInfo
• MS.Utility.FrugalListBase<>
• MS.Utility.FrugalObjectList<>
• System.Windows.Media.UniqueEventHelper<>
• System.Windows.Media.UniqueEventHelper
• System.Windows.Media.ColorContext
Usage example:
DB db = new DB(connectionString);
db.CreateDatabase("Sample");
db.OpenDatabase("Sample");
db.RegisterType(typeof(Book));
db.TypeRules.IgnoreType(typeof(DebugBook)); // This type will be ignored. Use this line only in database creation scripts.