Castle.MicroKernel.Context.CreationContext.CreationContext.Resolve C# (CSharp) Method

Resolve() public method

public Resolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : object
context CreationContext
contextHandlerResolver ISubDependencyResolver
model Castle.Core.ComponentModel
dependency Castle.Core.DependencyModel
return object
		public virtual object Resolve(CreationContext context, ISubDependencyResolver contextHandlerResolver,
		                              ComponentModel model, DependencyModel dependency)
		{
			Debug.Assert(CanResolve(context, contextHandlerResolver, model, dependency),
			             "CanResolve(context, contextHandlerResolver, model, dependency)");

			var inlineArgument = additionalParameters[dependency.DependencyKey];
			var targetType = dependency.TargetItemType;
			if (inlineArgument != null)
			{
				if (converter != null &&
				    !targetType.IsInstanceOfType(inlineArgument) &&
				    dependency.DependencyType == DependencyType.Parameter)
				{
					return converter.PerformConversion(inlineArgument.ToString(), targetType);
				}

				return inlineArgument;
			}

			inlineArgument = additionalParameters[targetType];
			if (inlineArgument != null &&
			    converter != null &&
			    !targetType.IsInstanceOfType(inlineArgument) &&
			    dependency.DependencyType == DependencyType.Parameter)
			{
				return converter.PerformConversion(inlineArgument.ToString(), targetType);
			}

			return inlineArgument;
		}