protected override void apply(Type pluginType, IConfiguredInstance instance) { if (instance.PluggedType == typeof (SpecialGuy)) { instance.Dependencies.Add(typeof(IRepository), new SmartInstance<SpecialRepository>()); } }
protected override void apply(Type pluginType, IConfiguredInstance instance) { instance.Constructor .GetParameters() .Where(param => param.ParameterType == typeof(Logger)) .Each(param => instance.Dependencies.Add(LoggerFactory.LoggerFor(instance.PluggedType))); }
protected override void apply(Type pluginType, IConfiguredInstance instance) { if (instance.Constructor == null) { instance.Constructor = Select(instance.PluggedType, instance.Dependencies); } }
protected override void apply(Type pluginType, IConfiguredInstance instance) { var parameter = instance.Constructor.GetParameters().FirstOrDefault(x => x.Name == "connectionString"); if (parameter != null) { var connectionString = findConnectionStringFromConfiguration(); instance.Dependencies.AddForConstructorParameter(parameter, connectionString); } }
public override void Alter(IConfiguredInstance instance, ParameterInfo parameter) { var value = System.Configuration.ConfigurationManager.AppSettings[_key]; instance.Dependencies.AddForConstructorParameter(parameter, value); }
public override void Alter(IConfiguredInstance instance, PropertyInfo property) { var value = System.Configuration.ConfigurationManager.AppSettings[_key]; instance.Dependencies.AddForProperty(property, value); }
public override void Alter(IConfiguredInstance instance) { instance.SetLifecycleTo<UniquePerRequestLifecycle>(); }
/// <summary> /// Gets an enumerable of all the public, settable properties that could be used /// for setter injection by StructureMap /// </summary> /// <param name="instance"></param> /// <returns></returns> public static IEnumerable <PropertyInfo> SettableProperties(this IConfiguredInstance instance) { return(instance.PluggedType.GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(x => x.CanWrite && x.GetSetMethod(false) != null && x.GetSetMethod().GetParameters().Length == 1)); }
public override void Alter(IConfiguredInstance instance) { instance.AddInterceptor(new ActivatorInterceptor<ClassWithInstanceAttributes>(x => x.TurnOn())); }
public abstract void Alter(IConfiguredInstance instance);
public override void Alter(IConfiguredInstance instance) { instance.AddInterceptor(new ActivatorInterceptor <ClassWithInstanceAttributes>(x => x.TurnOn())); }
/// <summary> /// Apply configuration customization for a single constructor parameter /// </summary> /// <param name="instance"></param> /// <param name="parameter"></param> public virtual void Alter(IConfiguredInstance instance, ParameterInfo parameter) { }
/// <summary> /// This method is called against any Instance that implements the /// IConfiguredInstance interface /// </summary> /// <param name="pluginType"></param> /// <param name="instance"></param> protected abstract void apply(Type pluginType, IConfiguredInstance instance);
public InstanceMementoPropertyReader(IConfiguredInstance instance, InstanceMemento memento) { _instance = instance; _memento = memento; }
public InstanceMementoPropertyReader(IConfiguredInstance instance, InstanceMemento memento, IPluginFactory pluginFactory) { _instance = instance; _memento = memento; _pluginFactory = pluginFactory; }
public override void Alter(IConfiguredInstance instance) { instance.Name = _name; }
/// <summary> /// Make configuration alterations to a single IConfiguredInstance object /// </summary> /// <param name="instance"></param> public virtual void Alter(IConfiguredInstance instance) { }
protected override void apply(Type pluginType, IConfiguredInstance instance) { instance.Constructor.GetParameters() .Where(x => x.ParameterType == typeof(IDatabase)) .Each(param => { // Using ReferencedInstance here tells StructureMap // to "use the IDatabase by this name" var db = new ReferencedInstance(param.Name); instance.Dependencies.AddForConstructorParameter(param, db); }); }
/// <summary> /// Apply configuration customization to a single setter property /// </summary> /// <param name="instance"></param> /// <param name="property"></param> public virtual void Alter(IConfiguredInstance instance, PropertyInfo property) { }
/// <summary> /// Set the lifecycle of this instance to "singleton" /// </summary> /// <param name="instance"></param> /// <returns></returns> public static IConfiguredInstance Singleton(this IConfiguredInstance instance) { instance.SetLifecycleTo <SingletonLifecycle>(); return(instance); }
public override void Alter(IConfiguredInstance instance) { instance.Name = ConcreteKey; }
public override void Alter(IConfiguredInstance instance) { }
// This method will affect single registrations public override void Alter(IConfiguredInstance instance) { instance.SetLifecycleTo<SingletonLifecycle>(); }
public object CreateInstance(string typeName, IConfiguredInstance instance) { throw new NotImplementedException(); }
public override void Alter(IConfiguredInstance instance) { instance.Name = _name; }
public object CreateInstance(Type pluginType, IConfiguredInstance instance) { throw new NotImplementedException(); }
public DecoratorInterceptor(Type pluginType, IConfiguredInstance instance) { _pluginType = pluginType; _instance = instance; }
/// <summary> /// Set the lifecycle of this instance to the default "transient" lifecycle /// </summary> /// <param name="instance"></param> /// <returns></returns> public static IConfiguredInstance DefaultLifecycle(this IConfiguredInstance instance) { instance.SetLifecycleTo <TransientLifecycle>(); return(instance); }