public ComponentImporter(Type type, ICustomTypeDescriptor typeDescriptor, IObjectConstructor constructor)
: base(type)
{
if (typeDescriptor == null)
typeDescriptor = new CustomTypeDescriptor(type);
int count = 0;
PropertyDescriptorCollection properties = typeDescriptor.GetProperties();
IObjectMemberImporter[] importers = new IObjectMemberImporter[properties.Count];
for (int i = 0; i < properties.Count; i++)
{
IServiceProvider sp = properties[i] as IServiceProvider;
if (sp == null)
continue;
IObjectMemberImporter importer = (IObjectMemberImporter) sp.GetService(typeof(IObjectMemberImporter));
if (importer == null)
continue;
importers[i] = importer;
count++;
}
_properties = properties;
if (count > 0)
_importers = importers;
_constructor = constructor;
}