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) { 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); }