コード例 #1
0
		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);
		}
コード例 #2
0
		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);
		}
コード例 #3
0
		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);
		}