From: <jer...@us...> - 2008-08-19 18:03:13
|
Revision: 143 http://structuremap.svn.sourceforge.net/structuremap/?rev=143&view=rev Author: jeremydmiller Date: 2008-08-19 18:03:10 +0000 (Tue, 19 Aug 2008) Log Message: ----------- cleaning up the way enrichment and oncreation lambdas are captured on SmartInstance Modified Paths: -------------- trunk/Source/StructureMap/Pipeline/ConfiguredInstance.Expressions.cs trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs trunk/Source/StructureMap/Pipeline/SmartInstance.cs trunk/Source/StructureMap.Testing/Configuration/DSL/InterceptorTesting.cs Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstance.Expressions.cs =================================================================== --- trunk/Source/StructureMap/Pipeline/ConfiguredInstance.Expressions.cs 2008-08-19 17:56:03 UTC (rev 142) +++ trunk/Source/StructureMap/Pipeline/ConfiguredInstance.Expressions.cs 2008-08-19 18:03:10 UTC (rev 143) @@ -1,11 +1,35 @@ using System; using StructureMap.Configuration.DSL; using StructureMap.Graph; +using StructureMap.Interceptors; namespace StructureMap.Pipeline { public partial class ConfiguredInstance { + public ConfiguredInstance WithName(string instanceKey) + { + Name = instanceKey; + return this; + } + + public ConfiguredInstance OnCreation<TYPE>(Action<TYPE> handler) + { + StartupInterceptor<TYPE> interceptor = new StartupInterceptor<TYPE>(handler); + Interceptor = interceptor; + + return this; + } + + public ConfiguredInstance EnrichWith<TYPE>(EnrichmentHandler<TYPE> handler) + { + EnrichmentInterceptor<TYPE> interceptor = new EnrichmentInterceptor<TYPE>(handler); + Interceptor = interceptor; + + return this; + } + + public ChildArrayExpression ChildArray<PLUGINTYPE>(string propertyName) { validateTypeIsArray<PLUGINTYPE>(); Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs =================================================================== --- trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-08-19 17:56:03 UTC (rev 142) +++ trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-08-19 18:03:10 UTC (rev 143) @@ -19,12 +19,6 @@ { } - - protected override ConfiguredInstance thisInstance - { - get { return this; } - } - #region IStructuredInstance Members #endregion Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs =================================================================== --- trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs 2008-08-19 17:56:03 UTC (rev 142) +++ trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs 2008-08-19 18:03:10 UTC (rev 143) @@ -4,7 +4,7 @@ namespace StructureMap.Pipeline { - public abstract class ConfiguredInstanceBase<T> : ExpressedInstance<T>, IConfiguredInstance, IStructuredInstance + public abstract class ConfiguredInstanceBase<T> : Instance, IConfiguredInstance, IStructuredInstance { protected Dictionary<string, Instance> _children = new Dictionary<string, Instance>(); protected Dictionary<string, string> _properties = new Dictionary<string, string>(); Modified: trunk/Source/StructureMap/Pipeline/SmartInstance.cs =================================================================== --- trunk/Source/StructureMap/Pipeline/SmartInstance.cs 2008-08-19 17:56:03 UTC (rev 142) +++ trunk/Source/StructureMap/Pipeline/SmartInstance.cs 2008-08-19 18:03:10 UTC (rev 143) @@ -3,6 +3,7 @@ using System.Linq.Expressions; using StructureMap.Configuration.DSL.Expressions; using StructureMap.Graph; +using StructureMap.Interceptors; namespace StructureMap.Pipeline { @@ -14,11 +15,36 @@ { } - protected override SmartInstance<T> thisInstance + public SmartInstance<T> WithName(string instanceKey) { - get { return this; } + Name = instanceKey; + return this; } + public SmartInstance<T> OnCreation(Action<T> handler) + { + StartupInterceptor<T> interceptor = new StartupInterceptor<T>(handler); + Interceptor = interceptor; + + return this; + } + + public SmartInstance<T> EnrichWith(EnrichmentHandler<T> handler) + { + EnrichmentInterceptor<T> interceptor = new EnrichmentInterceptor<T>(handler); + Interceptor = interceptor; + + return this; + } + + public SmartInstance<T> EnrichWith<PLUGINTYPE>(EnrichmentHandler<PLUGINTYPE> handler) + { + EnrichmentInterceptor<PLUGINTYPE> interceptor = new EnrichmentInterceptor<PLUGINTYPE>(handler); + Interceptor = interceptor; + + return this; + } + protected override string getDescription() { return "Smart Instance for " + getConcreteType().FullName; Modified: trunk/Source/StructureMap.Testing/Configuration/DSL/InterceptorTesting.cs =================================================================== --- trunk/Source/StructureMap.Testing/Configuration/DSL/InterceptorTesting.cs 2008-08-19 17:56:03 UTC (rev 142) +++ trunk/Source/StructureMap.Testing/Configuration/DSL/InterceptorTesting.cs 2008-08-19 18:03:10 UTC (rev 143) @@ -42,7 +42,7 @@ _container = new Container(r => r.ForRequestedType<IService>().AddInstances(x => { x.OfConcreteType<ColorService>() - .OnCreation<ColorService>(s => _lastService = s) + .OnCreation(s => _lastService = s) .WithName("Intercepted") .WithProperty("color").EqualTo("Red"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |