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