public ProxyGenerator Generate(ExportMetadata metadata, ImportMetadata[] imports, out IImportInterceptor interceptor) { interceptor = null; if (!typeof (ModelBase).IsAssignableFrom(metadata.Export.ImplementType)) return _genericGenerator; var targetImports = imports.Where(meta => meta.Metadata.ContainsKey(EnablePropertyInheritanceMetadataName)) .Where(m => (bool) m.Metadata[EnablePropertyInheritanceMetadataName]) .ToArray(); if (targetImports.Length == 0) return _genericGenerator; interceptor = new PropertyImportInterceptor(targetImports); return _genericGenerator; }