private IHandler CreateHandler(ComponentModel model) { if (model.RequiresGenericArguments) { return new DefaultGenericHandler(model); } var resolveExtensions = model.ResolveExtensions(false); var releaseExtensions = model.ReleaseExtensions(false); if (releaseExtensions == null && resolveExtensions == null) { return new DefaultHandler(model); } return new ExtendedHandler(model, resolveExtensions, releaseExtensions); }
private IHandler CreateHandler(ComponentModel model) { if (model.RequiresGenericArguments) { var matchingStrategy = GenericImplementationMatchingStrategy(model); return new DefaultGenericHandler(model, matchingStrategy); } var resolveExtensions = model.ResolveExtensions(false); var releaseExtensions = model.ReleaseExtensions(false); if (releaseExtensions == null && resolveExtensions == null) { return new DefaultHandler(model); } return new ExtendedHandler(model, resolveExtensions, releaseExtensions); }
private IHandler CreateHandler(ComponentModel model) { if (model.RequiresGenericArguments) { var matchingStrategy = GenericImplementationMatchingStrategy(model); var serviceStrategy = GenericServiceStrategy(model); return new DefaultGenericHandler(model, matchingStrategy, serviceStrategy); } // meta descriptors only apply to open generic handlers so we cam safely let go of them, save some memory ComponentModelDescriptorUtil.RemoveMetaDescriptors(model); var resolveExtensions = model.ResolveExtensions(false); var releaseExtensions = model.ReleaseExtensions(false); if (releaseExtensions == null && resolveExtensions == null) { return new DefaultHandler(model); } return new ExtendedHandler(model, resolveExtensions, releaseExtensions); }