Example #1
0
 /// <inheritdoc/>
 protected override void Process(TypeRegistry registry, TypeRegistration registration, Type type)
 {
     if (type == null || registry.Contains(type))
     {
         return;
     }
     if (!DomainTypeRegistry.IsInterestingType(type))
     {
         return;
     }
     // The type is interesting;
     // If it is a persistent type, let's register all its bases
     if (DomainTypeRegistry.IsPersistentType(type))
     {
         Process(registry, registration, type.BaseType);
     }
     Type[] interfaces = type.FindInterfaces(
         (_type, filterCriteria) => DomainTypeRegistry.IsPersistentType(_type), type);
     for (int index = 0; index < interfaces.Length; index++)
     {
         Process(registry, registration, interfaces[index]);
     }
     // Final registration
     base.Process(registry, registration, type);
 }