public object Resolve(IBuilderContext context) { Guard.ArgumentNotNull(context, "context"); NamedTypeBuildKey key = new NamedTypeBuildKey(type, name); IBuilderContext recursiveContext = context.CloneForNewBuild(key, null); return recursiveContext.Strategies.ExecuteBuildUp(recursiveContext); }
/// <summary> /// This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. /// Builds an <see cref="LoggingExceptionHandler"/> based on an instance of <see cref="LoggingExceptionHandlerData"/>. /// </summary> /// <seealso cref="ExceptionHandlerCustomFactory"/> /// <param name="context">The <see cref="IBuilderContext"/> that represents the current building process.</param> /// <param name="objectConfiguration">The configuration object that describes the object to build. Must be an instance of <see cref="LoggingExceptionHandlerData"/>.</param> /// <param name="configurationSource">The source for configuration objects.</param> /// <param name="reflectionCache">The cache to use retrieving reflection information.</param> /// <returns>A fully initialized instance of <see cref="LoggingExceptionHandler"/>.</returns> public IExceptionHandler Assemble(IBuilderContext context, ExceptionHandlerData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) { LoggingExceptionHandlerData castedObjectConfiguration = (LoggingExceptionHandlerData)objectConfiguration; LogWriter writer; if (castedObjectConfiguration.UseDefaultLogger) { writer = Logger.Writer; } else { IBuilderContext logWriterContext = context.CloneForNewBuild(NamedTypeBuildKey.Make <LogWriter>(), null); writer = (LogWriter)logWriterContext.Strategies.ExecuteBuildUp(logWriterContext); } LoggingExceptionHandler createdObject = new LoggingExceptionHandler( castedObjectConfiguration.LogCategory, castedObjectConfiguration.EventId, castedObjectConfiguration.Severity, castedObjectConfiguration.Title, castedObjectConfiguration.Priority, castedObjectConfiguration.FormatterType, writer); return(createdObject); }
public static object Resolve(IBuilderContext context, object buildKey, NotPresentBehavior behavior) { Guard.ArgumentNotNull(context, "context"); Guard.ArgumentNotNull(buildKey, "buildKey"); if (context.Locator.Contains(buildKey)) { return(context.Locator.Get(buildKey)); } switch (behavior) { case NotPresentBehavior.Build: IBuilderContext recursiveContext = context.CloneForNewBuild(buildKey, null); return(recursiveContext.Strategies.ExecuteBuildUp(recursiveContext)); case NotPresentBehavior.Null: return(null); case NotPresentBehavior.Throw: throw new DependencyMissingException(buildKey); default: throw new ArgumentException( string.Format(CultureInfo.CurrentCulture, Resources.UnknownNotPresentBehavior, behavior)); } }
public object Resolve(IBuilderContext context) { Guard.ArgumentNotNull(context, "context"); IBuilderContext recursiveContext = context.CloneForNewBuild(typeToBuild, null); return(recursiveContext.Strategies.ExecuteBuildUp(recursiveContext)); }
public object Resolve(IBuilderContext context) { Guard.ArgumentNotNull(context, "context"); NamedTypeBuildKey key = new NamedTypeBuildKey(type, name); IBuilderContext recursiveContext = context.CloneForNewBuild(key, null); return(recursiveContext.Strategies.ExecuteBuildUp(recursiveContext)); }
/// <summary> /// Get the value for a dependency. /// </summary> /// <param name="context">Current build context.</param> /// <returns>The value for the dependency.</returns> public object Resolve(IBuilderContext context) { if (context == null) { throw new ArgumentNullException("context"); } IBuilderContext recursiveContext = context.CloneForNewBuild(new NamedTypeBuildKey(typeToBuild), null); return recursiveContext.Strategies.ExecuteBuildUp(recursiveContext); }
/// <summary> /// Get the value for a dependency. /// </summary> /// <param name="context">Current build context.</param> /// <returns>The value for the dependency.</returns> public object Resolve(IBuilderContext context) { if (context == null) { throw new ArgumentNullException("context"); } IBuilderContext recursiveContext = context.CloneForNewBuild(new NamedTypeBuildKey(typeToBuild), null); return(recursiveContext.Strategies.ExecuteBuildUp(recursiveContext)); }
object IDependencyResolverPolicy.Resolve(IBuilderContext context) { IList result = (IList)Activator.CreateInstance(collectionType); foreach (string key in keys) { IBuilderContext buildContext = context.CloneForNewBuild(new NamedTypeBuildKey(elementType, key), null); result.Add(buildContext.Strategies.ExecuteBuildUp(buildContext)); } return(result); }
object IDependencyResolverPolicy.Resolve(IBuilderContext context) { TDictionary dictionary = new TDictionary(); foreach (KeyValuePair <string, TKey> keyPair in dependencyKeys) { IBuilderContext buildContext = context.CloneForNewBuild(NamedTypeBuildKey.Make <T>(keyPair.Key), null); T createdElement = (T)buildContext.Strategies.ExecuteBuildUp(buildContext); dictionary.Add(keyPair.Value, createdElement); } return(dictionary); }
public object[] GetParameters(IBuilderContext context, ConstructorInfo constructor) { Guard.ArgumentNotNull(constructor, "constructor"); ParameterInfo[] parms = constructor.GetParameters(); object[] parmsValueArray = new object[parms.Length]; for (int i = 0; i < parms.Length; ++i) { IBuilderContext recursiveContext = context.CloneForNewBuild( GetBuildKeyFromType(parms[i].ParameterType), null); parmsValueArray[i] = recursiveContext.Strategies.ExecuteBuildUp(recursiveContext); } return(parmsValueArray); }
public override TraceListener Assemble(IBuilderContext context, TraceListenerData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) { FormattedDatabaseTraceListenerData castedObjectConfiguration = (FormattedDatabaseTraceListenerData)objectConfiguration; IBuilderContext databaseContext = context.CloneForNewBuild( NamedTypeBuildKey.Make <Data.Database>(castedObjectConfiguration.DatabaseInstanceName), null); Data.Database database = (Data.Database)databaseContext.Strategies.ExecuteBuildUp(databaseContext); ILogFormatter formatter = GetFormatter(context, castedObjectConfiguration.Formatter, configurationSource, reflectionCache); TraceListener createdObject = new FormattedDatabaseTraceListener( database, castedObjectConfiguration.WriteLogStoredProcName, castedObjectConfiguration.AddCategoryStoredProcName, formatter); return(createdObject); }
public object Resolve(IBuilderContext context) { Guard.ArgumentNotNull(context, "context"); IBuilderContext recursiveContext = context.CloneForNewBuild(typeToBuild, null); return recursiveContext.Strategies.ExecuteBuildUp(recursiveContext); }
/// <summary> /// A convenience method to do a new buildup operation on an existing context. /// </summary> /// <remarks>This helper is specific to NamedTypeBuildKey.</remarks> /// <typeparam name="T">Type to return from the buildup.</typeparam> /// <param name="context">Existing context.</param> /// <returns>The built up object.</returns> public static T NewBuildUp <T>(IBuilderContext context) { IBuilderContext clone = context.CloneForNewBuild(NamedTypeBuildKey.Make <T>(), null); return((T)(clone.Strategies.ExecuteBuildUp(clone))); }
object IDependencyResolverPolicy.Resolve(IBuilderContext context) { IBuilderContext recursiveContext = context.CloneForNewBuild(this.referenceKey, null); return(recursiveContext.Strategies.ExecuteBuildUp(recursiveContext)); }