private ComponentLifecycleExtension GetDynamicParametersExtension(ComponentModel model) { if (model.ExtendedProperties.Contains(key)) { return((ComponentLifecycleExtension)model.ExtendedProperties[key]); } var dynamicParameters = new ComponentLifecycleExtension(); model.ExtendedProperties[key] = dynamicParameters; model.ResolveExtensions(true).Add(dynamicParameters); return(dynamicParameters); }
private IHandler CreateHandler(ComponentModel model) { if (model.RequiresGenericArguments) { var matchingStrategy = (IGenericImplementationMatchingStrategy)model.ExtendedProperties[ComponentModel.GenericImplementationMatchingStrategy]; 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)); }