|
From: <jer...@us...> - 2008-04-06 19:52:40
|
Revision: 74
http://structuremap.svn.sourceforge.net/structuremap/?rev=74&view=rev
Author: jeremydmiller
Date: 2008-04-06 12:52:39 -0700 (Sun, 06 Apr 2008)
Log Message:
-----------
changing out the construction pipeline
Modified Paths:
--------------
trunk/Source/StructureMap/Configuration/Mementos/ExplicitArgumentMemento.cs
trunk/Source/StructureMap/Emitting/Parameters/ChildArrayParameterEmitter.cs
trunk/Source/StructureMap/Emitting/Parameters/ChildParameterEmitter.cs
trunk/Source/StructureMap/Emitting/Parameters/ParameterEmitter.cs
trunk/Source/StructureMap/InstanceFactory.cs
trunk/Source/StructureMap/InstanceManager.cs
trunk/Source/StructureMap/InstanceMemento.cs
trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs
trunk/Source/StructureMap/Pipeline/Instance.cs
trunk/Source/StructureMap.Testing.Widget/Decision.cs
trunk/Source/StructureMap.Testing.Widget/Hierarchy.cs
Modified: trunk/Source/StructureMap/Configuration/Mementos/ExplicitArgumentMemento.cs
===================================================================
--- trunk/Source/StructureMap/Configuration/Mementos/ExplicitArgumentMemento.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Configuration/Mementos/ExplicitArgumentMemento.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -54,10 +54,10 @@
return _inner.GetChildMemento(Key);
}
- public override object GetChild(string key, string typeName, InstanceManager manager)
+ public override object GetChild(string key, string typeName, Pipeline.IInstanceCreator instanceCreator)
{
Type type = Type.GetType(typeName, true);
- return _args.Get(type) ?? base.GetChild(key, typeName, manager);
+ return _args.Get(type) ?? base.GetChild(key, typeName, instanceCreator);
}
public override InstanceMemento[] GetChildrenArray(string Key)
Modified: trunk/Source/StructureMap/Emitting/Parameters/ChildArrayParameterEmitter.cs
===================================================================
--- trunk/Source/StructureMap/Emitting/Parameters/ChildArrayParameterEmitter.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Emitting/Parameters/ChildArrayParameterEmitter.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -33,15 +33,14 @@
private void putChildArrayFromInstanceMementoOntoStack(ILGenerator ilgen, Type argumentType, string argumentName)
{
- ilgen.Emit(OpCodes.Ldarg_0);
- callGetInstanceManager(ilgen);
+ ilgen.Emit(OpCodes.Ldarg_2);
ilgen.Emit(OpCodes.Ldstr, argumentType.GetElementType().AssemblyQualifiedName);
ilgen.Emit(OpCodes.Ldarg_1);
ilgen.Emit(OpCodes.Ldstr, argumentName);
callInstanceMemento(ilgen, "GetChildrenArray");
- MethodInfo methodCreateInstanceArray = (typeof (InstanceManager).GetMethod("CreateInstanceArray"));
+ MethodInfo methodCreateInstanceArray = (typeof (StructureMap.Pipeline.IInstanceCreator).GetMethod("CreateInstanceArray"));
ilgen.Emit(OpCodes.Callvirt, methodCreateInstanceArray);
cast(ilgen, argumentType);
}
Modified: trunk/Source/StructureMap/Emitting/Parameters/ChildParameterEmitter.cs
===================================================================
--- trunk/Source/StructureMap/Emitting/Parameters/ChildParameterEmitter.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Emitting/Parameters/ChildParameterEmitter.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -30,9 +30,8 @@
ilgen.Emit(OpCodes.Ldarg_1);
ilgen.Emit(OpCodes.Ldstr, parameterName);
ilgen.Emit(OpCodes.Ldstr, fullName);
- ilgen.Emit(OpCodes.Ldarg_0);
+ ilgen.Emit(OpCodes.Ldarg_2);
- callGetInstanceManager(ilgen);
callInstanceMemento(ilgen, "GetChild");
cast(ilgen, parameterType);
}
Modified: trunk/Source/StructureMap/Emitting/Parameters/ParameterEmitter.cs
===================================================================
--- trunk/Source/StructureMap/Emitting/Parameters/ParameterEmitter.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Emitting/Parameters/ParameterEmitter.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -79,13 +79,6 @@
ilgen.Emit(OpCodes.Callvirt, _method);
}
- protected void callGetInstanceManager(ILGenerator ilgen)
- {
- PropertyInfo property = (typeof (InstanceBuilder)).GetProperty("Manager");
- MethodInfo methodGetInstanceManager = property.GetGetMethod();
- ilgen.Emit(OpCodes.Call, methodGetInstanceManager);
- }
-
protected void cast(ILGenerator ilgen, Type parameterType)
{
ilgen.Emit(OpCodes.Castclass, parameterType);
Modified: trunk/Source/StructureMap/InstanceFactory.cs
===================================================================
--- trunk/Source/StructureMap/InstanceFactory.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/InstanceFactory.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -145,7 +145,7 @@
try
{
InstanceBuilder builder = _instanceBuilders[memento.ConcreteKey];
- object constructedInstance = builder.BuildInstance(memento, null);
+ object constructedInstance = builder.BuildInstance(memento, builder.Manager);
CompoundInterceptor interceptor = _interceptorLibrary.FindInterceptor(constructedInstance.GetType());
return interceptor.Process(constructedInstance);
}
Modified: trunk/Source/StructureMap/InstanceManager.cs
===================================================================
--- trunk/Source/StructureMap/InstanceManager.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/InstanceManager.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -12,7 +12,7 @@
/// <summary>
/// A collection of IInstanceFactory's.
/// </summary>
- public class InstanceManager : IInstanceManager, IEnumerable
+ public class InstanceManager : IInstanceManager, IEnumerable, StructureMap.Pipeline.IInstanceCreator
{
private readonly InstanceDefaultManager _defaultManager;
private readonly Dictionary<Type, IInstanceFactory> _factories;
Modified: trunk/Source/StructureMap/InstanceMemento.cs
===================================================================
--- trunk/Source/StructureMap/InstanceMemento.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/InstanceMemento.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -187,27 +187,27 @@
/// </summary>
/// <param name="key"></param>
/// <param name="typeName"></param>
- /// <param name="manager"></param>
+ /// <param name="instanceCreator"></param>
/// <returns></returns>
- public virtual object GetChild(string key, string typeName, InstanceManager manager)
+ public virtual object GetChild(string key, string typeName, Pipeline.IInstanceCreator instanceCreator)
{
InstanceMemento memento = GetChildMemento(key);
object returnValue = null;
if (memento == null)
{
- returnValue = buildDefaultChild(key, manager, typeName);
+ returnValue = buildDefaultChild(key, instanceCreator, typeName);
}
else
{
- returnValue = manager.CreateInstance(typeName, memento);
+ returnValue = instanceCreator.CreateInstance(typeName, memento);
}
return returnValue;
}
- private static object buildDefaultChild(string key, InstanceManager manager, string typeName)
+ private static object buildDefaultChild(string key, StructureMap.Pipeline.IInstanceCreator manager, string typeName)
{
object returnValue;
try
Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs
===================================================================
--- trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -6,7 +6,7 @@
{
InstanceMemento[] GetChildrenArray(string propertyName);
string GetProperty(string propertyName);
- object GetChild(string propertyName, string typeName, InstanceManager manager);
+ object GetChild(string propertyName, string typeName, IInstanceCreator instanceCreator);
}
public class ConfiguredInstance : Instance
Modified: trunk/Source/StructureMap/Pipeline/Instance.cs
===================================================================
--- trunk/Source/StructureMap/Pipeline/Instance.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap/Pipeline/Instance.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -1,4 +1,5 @@
using System;
+using System.Data;
using System.Web.UI;
using StructureMap.Interceptors;
@@ -8,6 +9,9 @@
{
T CreateInstance<T>(string referenceKey);
T CreateInstance<T>();
+ Array CreateInstanceArray(string pluginType, InstanceMemento[] instanceMementoes);
+ object CreateInstance(string typeName, InstanceMemento memento);
+ object CreateInstance(string typeName);
}
public interface IInstanceDiagnostics
Modified: trunk/Source/StructureMap.Testing.Widget/Decision.cs
===================================================================
--- trunk/Source/StructureMap.Testing.Widget/Decision.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap.Testing.Widget/Decision.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -34,7 +34,7 @@
public override object BuildInstance(IConfiguredInstance instance, StructureMap.Pipeline.IInstanceCreator creator)
{
return new Decision(
- (Rule[]) Manager.CreateInstanceArray("StructureMap.Testing.Widget", instance.GetChildrenArray("Rules")));
+ (Rule[]) creator.CreateInstanceArray("StructureMap.Testing.Widget", instance.GetChildrenArray("Rules")));
}
}
}
\ No newline at end of file
Modified: trunk/Source/StructureMap.Testing.Widget/Hierarchy.cs
===================================================================
--- trunk/Source/StructureMap.Testing.Widget/Hierarchy.cs 2008-04-06 19:13:08 UTC (rev 73)
+++ trunk/Source/StructureMap.Testing.Widget/Hierarchy.cs 2008-04-06 19:52:39 UTC (rev 74)
@@ -112,7 +112,7 @@
{
return new Child(
instance.GetProperty("Name"),
- (GrandChild) instance.GetChild("MyGrandChild", "StructureMap.Testing.Widget.GrandChild", Manager));
+ (GrandChild) instance.GetChild("MyGrandChild", "StructureMap.Testing.Widget.GrandChild", creator));
}
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|