|
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.
|