From: <jer...@us...> - 2010-02-04 03:48:00
|
Revision: 337 http://structuremap.svn.sourceforge.net/structuremap/?rev=337&view=rev Author: jeremydmiller Date: 2010-02-04 03:47:54 +0000 (Thu, 04 Feb 2010) Log Message: ----------- convenience methods to get at all the weird Instance types Modified Paths: -------------- trunk/Source/StructureMap/Configuration/DSL/Expressions/CreatePluginFamilyExpression.cs trunk/Source/StructureMap/Configuration/DSL/Expressions/ProfileExpression.cs trunk/Source/StructureMap/PipelineGraph.cs Modified: trunk/Source/StructureMap/Configuration/DSL/Expressions/CreatePluginFamilyExpression.cs =================================================================== --- trunk/Source/StructureMap/Configuration/DSL/Expressions/CreatePluginFamilyExpression.cs 2010-02-04 03:17:07 UTC (rev 336) +++ trunk/Source/StructureMap/Configuration/DSL/Expressions/CreatePluginFamilyExpression.cs 2010-02-04 03:47:54 UTC (rev 337) @@ -59,6 +59,48 @@ } + /// <summary> + /// Conditional binding of instances + /// </summary> + /// <param name="configuration"></param> + /// <returns></returns> + public ConditionalInstance<PLUGINTYPE> ConditionallyUse( + Action<ConditionalInstance<PLUGINTYPE>.ConditionalInstanceExpression> configuration) + { + var instance = new ConditionalInstance<PLUGINTYPE>(configuration); + Use(instance); + + return instance; + } + + /// <summary> + /// Access to all of the uncommon Instance types + /// </summary> + /// <param name="configure"></param> + /// <returns></returns> + public CreatePluginFamilyExpression<PLUGINTYPE> Use(Action<IInstanceExpression<PLUGINTYPE>> configure) + { + var expression = new InstanceExpression<PLUGINTYPE>(i => Use(i)); + configure(expression); + + return this; + } + + + /// <summary> + /// Access to all of the uncommon Instance types + /// </summary> + /// <param name="configure"></param> + /// <returns></returns> + public CreatePluginFamilyExpression<PLUGINTYPE> Add(Action<IInstanceExpression<PLUGINTYPE>> configure) + { + var expression = new InstanceExpression<PLUGINTYPE>(i => Add(i)); + configure(expression); + + return this; + } + + private CreatePluginFamilyExpression<PLUGINTYPE> alterAndContinue(Action<PluginFamily> action) { _alterations.Add(action); Modified: trunk/Source/StructureMap/Configuration/DSL/Expressions/ProfileExpression.cs =================================================================== --- trunk/Source/StructureMap/Configuration/DSL/Expressions/ProfileExpression.cs 2010-02-04 03:17:07 UTC (rev 336) +++ trunk/Source/StructureMap/Configuration/DSL/Expressions/ProfileExpression.cs 2010-02-04 03:47:54 UTC (rev 337) @@ -110,6 +110,7 @@ _registry.addExpression(graph => graph.SetDefault(_parent._profileName, _pluginType, instance)); } + /// <summary> /// Use the named Instance as the Profile Instance for this PluginType @@ -248,6 +249,17 @@ } /// <summary> + /// Access to the uncommon types of Instance + /// </summary> + /// <param name="configure"></param> + public void Use(Action<IInstanceExpression<T>> configure) + { + var expression = new InstanceExpression<T>(i => Use(i)); + configure(expression); + } + + + /// <summary> /// For this Profile, use the Concrete Type /// </summary> /// <typeparam name="CONCRETETYPE"></typeparam> Modified: trunk/Source/StructureMap/PipelineGraph.cs =================================================================== --- trunk/Source/StructureMap/PipelineGraph.cs 2010-02-04 03:17:07 UTC (rev 336) +++ trunk/Source/StructureMap/PipelineGraph.cs 2010-02-04 03:47:54 UTC (rev 337) @@ -55,18 +55,6 @@ public void Dispose() { - //if (_factories.ContainsKey(typeof (IContainer))) - //{ - // foreach (Instance instance in _factories[typeof (IContainer)].AllInstances) - // { - // var disposable = instance as IDisposable; - // if (disposable != null) - // { - // disposable.Dispose(); - // } - // } - //} - foreach (var factory in _factories) { factory.Value.Dispose(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |