diff --git a/.gitignore b/.gitignore index b1580e9..4ea3633 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ build/ [Rr]elease/ _[Rr]e[Ss]harper.*/ TestResult.xml -*.nuspec \ No newline at end of file +*.nuspec +/src/packages diff --git a/src/UnityAutoMoq.Tests/UnityAutoMoq.Tests.csproj b/src/UnityAutoMoq.Tests/UnityAutoMoq.Tests.csproj index 52e3a2b..0d3e737 100644 --- a/src/UnityAutoMoq.Tests/UnityAutoMoq.Tests.csproj +++ b/src/UnityAutoMoq.Tests/UnityAutoMoq.Tests.csproj @@ -10,7 +10,7 @@ Properties UnityAutoMoq.Tests UnityAutoMoq.Tests - v4.0 + v4.5 512 @@ -49,6 +49,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -57,18 +58,24 @@ TRACE prompt 4 + false - - ..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll + + ..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + True - - False - ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.dll + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.dll + True - - False - ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.Configuration.dll + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.Configuration.dll + True + + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.RegistrationByConvention.dll + True False diff --git a/src/UnityAutoMoq.Tests/packages.config b/src/UnityAutoMoq.Tests/packages.config index 9c93bd6..d312342 100644 --- a/src/UnityAutoMoq.Tests/packages.config +++ b/src/UnityAutoMoq.Tests/packages.config @@ -1,7 +1,7 @@  - - + + - + \ No newline at end of file diff --git a/src/UnityAutoMoq/UnityAutoMoq.csproj b/src/UnityAutoMoq/UnityAutoMoq.csproj index b3affb2..9685abf 100644 --- a/src/UnityAutoMoq/UnityAutoMoq.csproj +++ b/src/UnityAutoMoq/UnityAutoMoq.csproj @@ -10,7 +10,7 @@ Properties UnityAutoMoq UnityAutoMoq - v3.5 + v4.5 512 @@ -39,6 +39,7 @@ + true @@ -48,6 +49,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -56,18 +58,24 @@ TRACE prompt 4 + false - - ..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll + + ..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + True - - False - ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.dll + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.dll + True - - False - ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.Configuration.dll + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.Configuration.dll + True + + + ..\packages\Unity.4.0.1\lib\net45\Microsoft.Practices.Unity.RegistrationByConvention.dll + True False diff --git a/src/UnityAutoMoq/packages.config b/src/UnityAutoMoq/packages.config index 7aff33e..a7d6c78 100644 --- a/src/UnityAutoMoq/packages.config +++ b/src/UnityAutoMoq/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file diff --git a/src/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg b/src/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg deleted file mode 100644 index a81045f..0000000 Binary files a/src/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg and /dev/null differ diff --git a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML b/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML deleted file mode 100644 index fb5136c..0000000 --- a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML +++ /dev/null @@ -1,280 +0,0 @@ - - - - Microsoft.Practices.ServiceLocation - - - - - The standard exception thrown when a ServiceLocator has an error in resolving an object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a specified error message. - - - The message that describes the error. - - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The generic Service Locator interface. This interface is used - to retrieve services (instances identified by type and optional - name) from a container. - - - - - Get an instance of the given . - - Type of object requested. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - Get an instance of the given . - - Type of object requested. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Activation error occured while trying to get all instances of type {0}. - - - - - Looks up a localized string similar to Activation error occured while trying to get instance of type {0}, key "{1}". - - - - - This class provides the ambient container for this application. If your - framework defines such an ambient container, use ServiceLocator.Current - to get it. - - - - - Set the delegate that is used to retrieve the current container. - - Delegate that, when called, will return - the current ambient container. - - - - The current ambient container. - - - - - This class is a helper that provides a default implementation - for most of the methods of . - - - - - Implementation of . - - The requested service. - if there is an error in resolving the service instance. - The requested object. - - - - Get an instance of the given . - - Type of object requested. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - Get an instance of the given . - - Type of object requested. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - When implemented by inheriting classes, this method will do the actual work of resolving - the requested service instance. - - Type of instance requested. - Name of registered service you want. May be null. - The requested service instance. - - - - When implemented by inheriting classes, this method will do the actual work of - resolving all the requested service instances. - - Type of service requested. - Sequence of service instance objects. - - - - Format the exception message for use in an - that occurs while resolving a single service. - - The actual exception thrown by the implementation. - Type of service requested. - Name requested. - The formatted exception message string. - - - - Format the exception message for use in an - that occurs while resolving multiple service instances. - - The actual exception thrown by the implementation. - Type of service requested. - The formatted exception message string. - - - - This delegate type is used to provide a method that will - return the current container. Used with the - static accessor class. - - An . - - - diff --git a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll b/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll deleted file mode 100644 index 3f88954..0000000 Binary files a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll and /dev/null differ diff --git a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb b/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb deleted file mode 100644 index 0df5fe3..0000000 Binary files a/src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb and /dev/null differ diff --git a/src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll b/src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll deleted file mode 100644 index fa75237..0000000 Binary files a/src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll and /dev/null differ diff --git a/src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML b/src/packages/CommonServiceLocator.1.3/lib/portable-net4+sl5+netcore45+wpa81+wp8/Microsoft.Practices.ServiceLocation.XML similarity index 91% rename from src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML rename to src/packages/CommonServiceLocator.1.3/lib/portable-net4+sl5+netcore45+wpa81+wp8/Microsoft.Practices.ServiceLocation.XML index fb5136c..dbfa9ae 100644 --- a/src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML +++ b/src/packages/CommonServiceLocator.1.3/lib/portable-net4+sl5+netcore45+wpa81+wp8/Microsoft.Practices.ServiceLocation.XML @@ -1,280 +1,268 @@ - - - - Microsoft.Practices.ServiceLocation - - - - - The standard exception thrown when a ServiceLocator has an error in resolving an object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a specified error message. - - - The message that describes the error. - - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The generic Service Locator interface. This interface is used - to retrieve services (instances identified by type and optional - name) from a container. - - - - - Get an instance of the given . - - Type of object requested. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - Get an instance of the given . - - Type of object requested. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Activation error occured while trying to get all instances of type {0}. - - - - - Looks up a localized string similar to Activation error occured while trying to get instance of type {0}, key "{1}". - - - - - This class provides the ambient container for this application. If your - framework defines such an ambient container, use ServiceLocator.Current - to get it. - - - - - Set the delegate that is used to retrieve the current container. - - Delegate that, when called, will return - the current ambient container. - - - - The current ambient container. - - - - - This class is a helper that provides a default implementation - for most of the methods of . - - - - - Implementation of . - - The requested service. - if there is an error in resolving the service instance. - The requested object. - - - - Get an instance of the given . - - Type of object requested. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is an error resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - Get an instance of the given . - - Type of object requested. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get an instance of the given named . - - Type of object requested. - Name the object was registered with. - if there is are errors resolving - the service instance. - The requested service instance. - - - - Get all instances of the given currently - registered in the container. - - Type of object requested. - if there is are errors resolving - the service instance. - A sequence of instances of the requested . - - - - When implemented by inheriting classes, this method will do the actual work of resolving - the requested service instance. - - Type of instance requested. - Name of registered service you want. May be null. - The requested service instance. - - - - When implemented by inheriting classes, this method will do the actual work of - resolving all the requested service instances. - - Type of service requested. - Sequence of service instance objects. - - - - Format the exception message for use in an - that occurs while resolving a single service. - - The actual exception thrown by the implementation. - Type of service requested. - Name requested. - The formatted exception message string. - - - - Format the exception message for use in an - that occurs while resolving multiple service instances. - - The actual exception thrown by the implementation. - Type of service requested. - The formatted exception message string. - - - - This delegate type is used to provide a method that will - return the current container. Used with the - static accessor class. - - An . - - - + + + + Microsoft.Practices.ServiceLocation + + + + + The standard exception thrown when a ServiceLocator has an error in resolving an object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + + The message that describes the error. + + + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + + The generic Service Locator interface. This interface is used + to retrieve services (instances identified by type and optional + name) from a container. + + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + This class provides the ambient container for this application. If your + framework defines such an ambient container, use ServiceLocator.Current + to get it. + + + + + Set the delegate that is used to retrieve the current container. + + Delegate that, when called, will return + the current ambient container. + + + + The current ambient container. + + + + + This class is a helper that provides a default implementation + for most of the methods of . + + + + + Implementation of . + + The requested service. + if there is an error in resolving the service instance. + The requested object. + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + When implemented by inheriting classes, this method will do the actual work of resolving + the requested service instance. + + Type of instance requested. + Name of registered service you want. May be null. + The requested service instance. + + + + When implemented by inheriting classes, this method will do the actual work of + resolving all the requested service instances. + + Type of service requested. + Sequence of service instance objects. + + + + Format the exception message for use in an + that occurs while resolving a single service. + + The actual exception thrown by the implementation. + Type of service requested. + Name requested. + The formatted exception message string. + + + + Format the exception message for use in an + that occurs while resolving multiple service instances. + + The actual exception thrown by the implementation. + Type of service requested. + The formatted exception message string. + + + + This delegate type is used to provide a method that will + return the current container. Used with the + static accessor class. + + An . + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Activation error occurred while trying to get all instances of type {0}. + + + + + Looks up a localized string similar to Activation error occurred while trying to get instance of type {0}, key "{1}". + + + + + Looks up a localized string similar to ServiceLocationProvider must be set.. + + + + diff --git a/src/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg b/src/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg deleted file mode 100644 index 9df8362..0000000 Binary files a/src/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll b/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll deleted file mode 100644 index 3bf4b27..0000000 Binary files a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll b/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll deleted file mode 100644 index 0d1a895..0000000 Binary files a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll b/src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll deleted file mode 100644 index f83c426..0000000 Binary files a/src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/tools/Utils.psm1 b/src/packages/Unity.2.1.505.0/tools/Utils.psm1 deleted file mode 100644 index 209582d..0000000 Binary files a/src/packages/Unity.2.1.505.0/tools/Utils.psm1 and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/tools/install.ps1 b/src/packages/Unity.2.1.505.0/tools/install.ps1 deleted file mode 100644 index 7a225dd..0000000 Binary files a/src/packages/Unity.2.1.505.0/tools/install.ps1 and /dev/null differ diff --git a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml b/src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.Configuration.XML similarity index 89% rename from src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml rename to src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.Configuration.XML index 5623914..5c24c78 100644 --- a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml +++ b/src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.Configuration.XML @@ -1,2451 +1,2424 @@ - - - - Microsoft.Practices.Unity.Configuration - - - - - A configuration element storing information about a single type alias. - - - - - Base class for configuration elements with a default implementation of - public deserialization. - - - - - Load this element from the given . - - Contains the XML to initialize from. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Construct a new, uninitialized . - - - - - Construct a new that is initialized - to alias to the target . - - Alias to use. - Type that is aliased. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - The alias used for this type. - - - - - The fully qualified name this alias refers to. - - - - - A collection of s. - - - - - Specialization of - that provides a canned implmentation of . - - Type of configuration element in the collection. - - - - A base helper class for implementing configuration collections. - - Type of configuration element contained in - the collection. - - - - Plug point to get objects out of the collection. - - Index in the collection to retrieve the item from. - Item at that index or null if not present. - - - - Plug point to get objects out of the collection. - - Key to look up the object by. - Item with that key or null if not present. - - - - Load this element from the given . - - Contains the XML to initialize from. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Add a new element to the collection. - - Element to add. - - - - Remove an element from the collection at the given index. - - The index of the item to remove. - - - - Remove all the items in the collection. - - - - - Write out the contents of this collection to the given - without a containing element - corresponding directly to this container element. Each - child element will have a tag name given by - . - - to output XML to. - Name of tag to generate. - - - - Indexer to retrieve items in the collection by index. - - Index of the item to get or set. - The item at the given index. - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Indexer that allows you to get or set an alias by the alias name. - - Alias of element to get or set. - The type name at that alias. - - - - A configuration element used to configure injection of - a specific set of values into an array. - - - - - Base class for configuration elements that describe a value that will - be injected. - - - - - Initialize a new instance of . - - - - - Generate an object - that will be used to configure the container for a type registration. - - Container that is being configured. Supplied in order - to let custom implementations retrieve services; do not configure the container - directly in this method. - Type of the - - - - - Validate that an expected attribute is present in the given - dictionary and that it has a non-empty value. - - Dictionary of name/value pairs to check. - attribute name to check. - - - - Return a unique string that can be used to identify this object. Used - by the configuration collection support. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Generate an object - that will be used to configure the container for a type registration. - - Container that is being configured. Supplied in order - to let custom implementations retrieve services; do not configure the container - directly in this method. - Type of the - - - - - Type of array to inject. This is actually the type of the array elements, - not the array type. Optional, if not specified we take the type from - our containing element. - - - - - Values used to calculate the contents of the array. - - - - - A configuration element representing the namespace - tags in the config file. - - - - - An element with a single "name" property, used for - the namespaces and assemblies. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Name attribute for this element. - - - - - A collection of s in configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Helpful extension methods when implementing configuration sections - that deserialize "unwrapped" elements - elements that should be - deserialized into a container but can be present outside - that container in the actual config file. - - - - - Deserialize an element of the given type, store it in - the collection object, and - - Type of element to create and deserialize. - Parent element containing element to deserialize. - Xml reader containing state to deserialize from. - Collection to store the created element into. - The created element. - - - - Deserialize an element, basing the element type on the one - supplied at runtime, and then store the element into the - given . - - This method is useful when reading elements into a polymorphic collection. - Base type of element to store. - Element that contains the collection being stored into. - Xml Reader containing state to deserialize from. - Runtime type of element to create. - Collection to store the created element into. - The created element. - - - - Class that tracks the current input state of the parser. - - - - - A simple implementing of the rules for a Parsing Expression Grammar - parsing algorithm. This supplies basic methods to do the primitives - of the PEG, and combinators to create larger rules. - - - - - The PEG "dot" operator that matches and consumes one character. - - Input to the parser. - The parse result. - - - - Parse function generator that returns a method to match a single, - specific character. - - Character to match. - The generated parsing function. - - - - Parse function generator that checks if the current character matches - the predicate supplied. - - Predicate used to determine if the character is in - the given range. - The generated parsing function. - - - - The "*" operator - match zero or more of the inner parse expressions. - - Parse method to repeat matching. - The generated parsing function. - - - - Parsing combinator that matches all of the given expressions in - order, or matches none of them. - - Expressions that form the sequence to match. - The combined sequence. - - - - Parsing combinator that implements the PEG prioritized choice operator. Basically, - try each of the expressions in order, and match if any of them match, stopping on the - first match. - - Expressions that form the set of alternatives. - The combined parsing method. - - - - Parsing combinator implementing the "not" predicate. This wraps - the given parsing method with a check - to see if it matched. If it matched, then the Not fails, and vice - versa. The result consumes no input. - - The parse method to wrap. - The generated parsing function. - - - - Parsing expression that matches End of input. - - Parser input. - Parse result - - - - Combinator that executes an action if the given expression matched. - - Parsing expression to match. - Action to execute if - matched. Input is the matched text from . - The result of . - - - - Combinator that executes an action if the given expression matched. - - parsing expression to match. - Method to execute if a match happens. This method returns - the that will be returned from the combined expression. - The result of if expression matched, else - whatever returned. - - - - Object containing the result of attempting to match a PEG rule. - This object is the return type for all parsing methods. - - - - - Did the rule match? - - - - - The characters that were matched (if any) - - - - - Any extra information provided by the parsing expression - (only set if the parse matched). The nature - of the data varies depending on the parsing expression. - - - - - Helper methods to make it easier to pull the data - out of the result of a sequence expression. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - - Removes all items from the . - - The is read-only. - - - - - Determines whether the contains a specific value. - - - true if is found in the ; otherwise, false. - - The object to locate in the . - - - - - Copies the elements of the sequence to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from this sequence. The must have zero-based indexing. - The zero-based index in at which copying begins. - is null. - is less than 0. - is multidimensional. - -or- - is equal to or greater than the length of . - -or- - The number of elements in the source is greater than the available space from to the end of the destination . - - - - - Removes the first occurrence of a specific object from the . - - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The object to remove from the . - The is read-only. - - - - - Determines the index of a specific item in the . - - - The index of if found in the list; otherwise, -1. - - The object to locate in the . - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - is not a valid index in the . - The is read-only. - - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - is not a valid index in the . - The is read-only. - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Gets a value indicating whether the is read-only. - - - true if the is read-only; otherwise, false. - - - - - Gets or sets the element at the specified index. - - - The element at the specified index. - - The zero-based index of the element to get or set. - is not a valid index in the . - The property is set and the is read-only. - - - - - Class containing information about a type name. - - - - - The base name of the class - - - - - Namespace if any - - - - - Assembly name, if any - - - - - Helper methods on . - - - - - A helper method to make it more foolproof to write elements. This takes care of writing the - start and end elment tags, and takes a nested closure with the code to write the content of - the tag. That way the caller doesn't need to worry about the details of getting the start - and end tags correct. - - - We don't support XML Namespaces here because .NET configuration doesn't use them so - we don't need it for this current implementation. - - XmlWriter to write to. - Name of element. - Nested lambda which, when executed, will create the content for the - element. - (for method chaining if desired). - - - - A helper method to make it easier to output attributes. If the is - null or an empty string, output nothing, else output the given XML attribute. - - Writer to output to. - Attribute name to write. - Value for the attribute. - (for method chaining if desired). - - - - A base class for those elements that can be used - to configure a unity container. - - - - - Create a new instance of . - - - - - Apply this element's configuration to the given . - - Container to configure. - - - - Return a unique key that can be used to manage this element in a collection. - - - - - A couple of useful extension methods on IDictionary - - - - - Get the value from a dictionary, or null if there is no value. - - Key type of dictionary. - Value type of dictionary. - Dictionary to search. - Key to look up. - The value at the key or null if not in the dictionary. - - - - A helper class used to map element tag names to a handler method - used to interpret that element. - - - - - - Add method to enable dictionary initializer syntax - - - - - - - Process an unknown element according to the map entries. - - Parent element that hit this unknown element. - Name of the unknown element. - XmlReader positioned at start of element. - true if processed, false if not. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - A helper class used to map element tag names to a handler method - used to interpret that element. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - A helper class that assists in deserializing parameter and property - elements. These elements both have a single "value" child element that - specify the value to inject for the property or parameter. - - - - - Create a new that wraps reading - values and storing them in the given . - - Element that contains the value elements. - - - - Gets a , or if none is present, - returns a default . - - The . - The given , unless - is null, in which case returns - a . - - - - Helper method used during deserialization to handle - attributes for the dependency and value tags. - - attribute name. - attribute value. - true - - - - Helper method used during deserialization to handle the default - value element tags. - - The element name. - XML data to read. - True if deserialization succeeded, false if it failed. - - - - Call this method at the end of deserialization of your element to - set your value element. - - - - - Serialize a object out to XML. - This method is aware of and implements the shorthand attributes - for dependency and value elements. - - Writer to output XML to. - The to serialize. - If true, always output an element. If false, then - dependency and value elements will be serialized as attributes in the parent tag. - - - - Configuration element representing a constructor configuration. - - - - - Base class for configuration elements that generate - object to configure a container. - - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Get the standard tag name for an - taking into account currently loaded section extensions. - - Element to get the name for. - The element name. - If the member element is not currently registered - with the section. - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - Element name to use to serialize this into XML. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - The parameters of the constructor to call. - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - Element name to use to serialize this into XML. - - - - - A collection of s as - loaded from configuration. - - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - A configuration element class defining the set of registrations to be - put into a container. - - - - - Original configuration API kept for backwards compatibility. - - Container to configure - - - - Apply the configuration information in this element to the - given . - - Container to configure. - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Name for this container configuration as given in the config file. - - - - - The type registrations in this container. - - - - - Any instances to register in the container. - - - - - Any extensions to add to the container. - - - - - Set of any extra configuration elements that were added by a - section extension. - - - This is not marked as a configuration property because we don't want - the actual property to show up as a nested element in the configuration. - - - - Configuration element representing an extension to add to a container. - - - - - Add the extension specified in this element to the container. - - Container to configure. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Type of the extension to add. - - - - - A collection of s. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - A derived class that describes - a parameter that should be resolved through the container. - - - - - Create a new instance of . - - - - - Create a new instance of with - properties initialized from the contents of - . - - Dictionary of name/value pairs to - initialize this object with. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Write the contents of this element to the given . This - method always outputs an explicit <dependency> tag, instead of providing - attributes to the parent method. - - Writer to send XML content to. - - - - Generate an object - that will be used to configure the container for a type registration. - - Container that is being configured. Supplied in order - to let custom implementations retrieve services; do not configure the container - directly in this method. - Type of the - - - - - Name to use to when resolving. If empty, resolves the default. - - - - - Name of type this dependency should resolve to. This is optional; - without it the container will resolve the type of whatever - property or parameter this element is contained in. - - - - - Base class used to derive new elements that can occur - directly within a container element. - - - - - Initialize a new instance of . - - - - - When overridden in a derived class, this method will make configuration - calls into the given according to its contents. - - The container to configure. - - - - Unique key generated for use in the collection class. - - - - - A collection of s. - - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - This class manages the set of extension elements - added by section elements. - - - - - Clear the current set of extension elements. - - - - - Register a new ContainerExtensionConfigurationElement with he section so it - can be read. - - prefix if any. - tag name. - Type of element to register. - - - - Register a new with the section - so it can be read. - - prefix if any. - Tag name. - Type of element to register. - - - - Register a new with the section - so it can be read. - - prefix if any. - Tag name. - Type of element to register. - - - - Retrieve the registered for the given - tag. - - Tag to look up. - Type of element, or null if not registered. - - - - Retrieve the ContainerExtensionConfigurationElement registered for the given - tag. - - Tag to look up. - Type of element, or null if not registered. - - - - Retrieve the ContainerExtensionConfigurationElement registered for the given - tag. - - Tag to look up. - Type of element, or null if not registered. - - - - Retrieve the correct tag to use when serializing the given - to XML. - - Element to be serialized. - The tag for that element type. - if the element is of a type that - is not registered with the section already. - - - - A polymorphic collection of s. - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Indexer that lets you access elements by their key. - - Key to retrieve element with. - The element. - - - - A configuration element that describes an instance to add to the container. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Add the instance defined by this element to the given container. - - Container to configure. - - - - Name to register instance under - - - - - Value for this instance - - - - - Type of the instance. If not given, defaults to string - - - - - Type name for the type converter to use to create the instance. If not - given, defaults to the default type converter for this instance type. - - - - - Key used to keep these instances unique in the config collection. - - - - - A collection of s. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - An element that has a child Value property. - - - - - String that will be deserialized to provide the value. - - - - - A string describing where the value this element contains - is being used. For example, if setting a property Prop1, - this should return "property Prop1" (in english). - - - - - A configuration element that represents lifetime managers. - - - - - Create the described by - this element. - - A instance. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Type of the lifetime manager. - - - - - Extra initialization information used by the type converter for this lifetime manager. - - - - - Type of to use to create the - lifetime manager. - - - - - A configuration element representing a method to call. - - - - - Construct a new instance of . - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Name of the method to call. - - - - - Parameters to the method call. - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - Element name to use to serialize this into XML. - - - - - A configuration element representing the namespace - tags in the config file. - - - - - A collection of s in configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - A configuration element that specifies that a value - is optional. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Generate an object - that will be used to configure the container for a type registration. - - Container that is being configured. Supplied in order - to let custom implementations retrieve services; do not configure the container - directly in this method. - Type of the - - - - - Name used to resolve the dependency, leave out or blank to resolve default. - - - - - Type of dependency to resolve. If left out, resolved the type of - the containing parameter or property. - - - - - Configuration element representing a parameter passed to a constructor - or a method. - - - - - Construct a new instance of . - - - - - Returns the required needed - to configure the container so that the correct value is injected. - - Container being configured. - Type of the parameter. - The value to use to configure the container. - - - - Does the information in this match - up with the given ? - - Information about the parameter. - True if this is a match, false if not. - - - - Reads XML from the configuration file. - - The that reads from the configuration file. - true to serialize only the collection key properties; otherwise, false. - The element to read is locked. - - or - - An attribute of the current node is not recognized. - - or - - The lock status of the current node cannot be determined. - - - - - Gets a value indicating whether an unknown attribute is encountered during deserialization. - - - true when an unknown attribute is encountered while deserializing; otherwise, false. - - The name of the unrecognized attribute. - The value of the unrecognized attribute. - - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Name of this parameter. - - - - - Type of this parameter. - - This is only needed in order to disambiguate method overloads. Normally - the parameter name is sufficient. - - - - Element that describes the value for this property. - - - This is NOT marked as a ConfigurationProperty because this - child element is polymorphic, and the element tag determines - the type. Standard configuration properties only let you do - this if it's a collection, but we only want one value. Thus - the separate property. The element is deserialized in - . - - - - A string describing where the value this element contains - is being used. For example, if setting a property Prop1, - this should return "property Prop1" (in english). - - - - - A collection of objects. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - A collection of objects. - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - String that will be deserialized to provide the value. - - - - - A string describing where the value this element contains - is being used. For example, if setting a property Prop1, - this should return "property Prop1" (in english). - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to An abstract ContainerConfiguringElement cannot be created. Please specify a concrete type.. - - - - - Looks up a localized string similar to An abstract ExtensionConfigurationElement object cannot be created. Please specify a concrete type.. - - - - - Looks up a localized string similar to An abstract InjectionMemberElement object cannot be created. Please specify a concrete type.. - - - - - Looks up a localized string similar to An abstract ParameterValueElement object cannot be created. Please specify a concrete type.. - - - - - Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name.. - - - - - Looks up a localized string similar to The dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. - - - - - Looks up a localized string similar to The optional dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. - - - - - Looks up a localized string similar to {0} {1}. - - - - - Looks up a localized string similar to The injection configuration for {0} has multiple values.. - - - - - Looks up a localized string similar to The configuration element type {0} has not been registered with the section.. - - - - - Looks up a localized string similar to The injection configuration for {0} is specified through both attributes and child value elements.. - - - - - Looks up a localized string similar to Could not load section extension type {0}.. - - - - - Looks up a localized string similar to The extension type {0} does not derive from SectionExtension.. - - - - - Looks up a localized string similar to The extension element type {0} that is being added does not derive from ContainerConfiguringElement, InjectionMemberElement, or ParameterValueElement. An extension element must derive from one of these types.. - - - - - Looks up a localized string similar to No valid attributes were found to construct the value for the {0}. Please check the configuration file.. - - - - - Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a constructor that takes parameters named {1}.. - - - - - Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a method named {1} that takes parameters named {2}.. - - - - - Looks up a localized string similar to The container named "{0}" is not defined in this configuration section.. - - - - - Looks up a localized string similar to The type {0} does not have a property named {1}.. - - - - - Looks up a localized string similar to The configuration is set to inject an array, but the type {0} is not an array type.. - - - - - Looks up a localized string similar to parameter. - - - - - Looks up a localized string similar to property. - - - - - Looks up a localized string similar to The attribute {0} must be present and non-empty.. - - - - - Looks up a localized string similar to The value element for {1} was specified for the generic array type {0}. Value elements are not allowed for generic array types.. - - - - - Looks up a localized string similar to The value element for {1} was specified for the generic parameter type {0}. Value elements are not allowed for generic parameter types.. - - - - - Looks up a localized string similar to The value element for {1} was specified for the generic type {0}. Value elements are not allowed for generic types.. - - - - - A class representing a property configuration element. - - - - - Construct a new instance of - - - - - Reads XML from the configuration file. - - The that reads from the configuration file. - true to serialize only the collection key properties; otherwise, false. - The element to read is locked. - - or - - An attribute of the current node is not recognized. - - or - - The lock status of the current node cannot be determined. - - - - - Gets a value indicating whether an unknown attribute is encountered during deserialization. - - - true when an unknown attribute is encountered while deserializing; otherwise, false. - - The name of the unrecognized attribute. - The value of the unrecognized attribute. - - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Name of the property that will be set. - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - String that will be deserialized to provide the value. - - - - - A string describing where the value this element contains - is being used. For example, if setting a property Prop1, - this should return "property Prop1" (in english). - - - - - Element name to use to serialize this into XML. - - - - - A configuration element representing a single container type registration. - - - - - Apply the registrations from this element to the given container. - - Container to configure. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - The type that is registered. - - - - - Name registered under. - - - - - Type that is mapped to. - - - - - Lifetime manager to register for this registration. - - - - - Any injection members (constructor, properties, etc.) that are specified for - this registration. - - - - - A collection of s. - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Base class for Unity configuration section extensions. - Derived classes are used to add custom elments and aliases - into the configuration section being loaded. - - - - - Add the extensions to the section via the context. - - Context object that can be used to add elements and aliases. - - - - An object that gives the ability to add - elements and aliases to a configuration section. - - - - - Add a new alias to the configuration section. This is useful - for those extensions that add commonly used types to configuration - so users don't have to alias them repeatedly. - - The alias to use. - Type the alias maps to. - - - - Add a new alias to the configuration section. This is useful - for those extensions that add commonly used types to configuration - so users don't have to alias them repeatedly. - - Type the alias maps to. - The alias to use - - - - Add a new element to the configuration section schema. - - Tag name in the XML. - Type the tag maps to. - - - - Add a new element to the configuration section schema. - - Type the tag maps to. - Tag name in the XML. - - - - A configuration element used to specify which extensions to - add to the configuration schema. - - - - - Reads XML from the configuration file. - - The that reads from the configuration file. - true to serialize only the collection key properties; otherwise, false. - The element to read is locked. - - or - - An attribute of the current node is not recognized. - - or - - The lock status of the current node cannot be determined. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Type of the section extender object that will provide new elements to the schema. - - - - - Optional prefix that will be added to the element names added by this - section extender. If left out, no prefix will be added. - - - - - The extension object represented by this element. - - - - - A collection of s. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Type that manage access to a set of type aliases and implements - the logic for converting aliases to their actual types. - - - - - Set the set of aliases to use for resolution. - - Configuration section containing the various - type aliases, namespaces and assemblies. - - - - Resolves a type alias or type fullname to a concrete type. - - Type alias or type fullname - Type object or null if resolve fails. - Thrown if alias lookup fails. - - - - Resolves a type alias or type fullname to a concrete type. - - Alias or name to resolve. - if true and the alias does not - resolve, throw an , otherwise - return null on failure. - The type object or null if resolve fails and - is false. - - - - Resolve a type alias or type full name to a concrete type. - If is null or empty, return the - given instead. - - Type alias or full name to resolve. - Value to return if typeName is null or empty. - The concrete . - Thrown if alias lookup fails. - - - - Resolve a type alias or type full name to a concrete type. - If is null or empty, return the - given instead. - - Type alias or full name to resolve. - Value to return if typeName is null or empty. - if true and the alias does not - resolve, throw an , otherwise - return null on failure. - The concrete . - Thrown if alias lookup fails and - is true. - - - - A helper class that implements the actual logic for resolving a shorthand - type name (alias or raw type name) into an actual type object. - - - - - Construct a new that uses the given - sequence of alias, typename pairs to resolve types. - - Type aliases from the configuration file. - Assembly names to search. - Namespaces to search. - - - - Resolves a type alias or type fullname to a concrete type. - - Alias or name to resolve. - if true and the alias does not - resolve, throw an , otherwise - return null on failure. - The type object or null if resolve fails and - is false. - - - - Resolve a type alias or type full name to a concrete type. - If is null or empty, return the - given instead. - - Type alias or full name to resolve. - Value to return if typeName is null or empty. - if true and the alias does not - resolve, throw an , otherwise - return null on failure. - - If is null or an empty string, - then return . - Otherwise, return the resolved type object. If the resolution fails - and is false, then return null. - - - - - A configuration section describing configuration for an . - - - - - The name of the section where unity configuration is expected to be found. - - - - - XML Namespace string used for IntelliSense in this section. - - - - - Apply the configuration in the default container element to the given container. - - Container to configure. - The passed in . - - - - Apply the configuration in the default container element to the given container. - - Container to configure. - Name of the container element to use to configure the container. - The passed in . - - - - Reads XML from the configuration file. - - The object, which reads from the configuration file. - found no elements in the configuration file. - - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Creates an XML string containing an unmerged view of the object as a single section to write to a file. - - - An XML string containing an unmerged view of the object. - - The instance to use as the parent when performing the un-merge. - The name of the section to create. - The instance to use when writing to a string. - - - - - The current that is being deserialized - or being configured from. - - - - - Storage for XML namespace. The namespace isn't used or validated by config, but - it is useful for Visual Studio XML IntelliSense to kick in. - - - - - The set of containers defined in this configuration section. - - - - - The set of type aliases defined in this configuration file. - - - - - Any schema extensions that are added. - - - - - Any namespaces added to the type search list. - - - - - Any assemblies added to the type search list. - - - - - Add a new alias to the configuration section. This is useful - for those extensions that add commonly used types to configuration - so users don't have to alias them repeatedly. - - The alias to use. - Type the alias maps to. - - - - Add a new element to the configuration section schema. - - Tag name in the XML. - Type the tag maps to. - - - - Collection element for s. - - - - - Plug point to get objects out of the collection. - - Index in the collection to retrieve the item from. - Item at that index or null if not present. - - - - Plug point to get objects out of the collection. - - Key to look up the object by. - Item with that key or null if not present. - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Retrieve a stored by name. - - Name to look up. - The stored container or null if not in the collection. - - - - Return the default container in the collection. The default is the one without a name. - - - - - Extensions to to simplify - loading configuration into a container. - - - - - Apply configuration from the given section and named container - into the given container. - - Unity container to configure. - Configuration section with config information. - Named container. - . - - - - Apply configuration from the default section (named "unity" pulled out of - ConfigurationManager) and the named container. - - Unity container to configure. - Named container element in configuration. - . - - - - Apply configuration from the default section and unnamed container element. - - Container to configure. - . - - - - Apply configuration from the default container in the given section. - - Unity container to configure. - Configuration section. - . - - - - Element that describes a constant value that will be - injected into the container. - - - - - Construct a new object. - - - - - Construct a new object, - initializing properties from the contents of - . - - Name/value pairs which - contain the values to initialize properties to. - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Write the contents of this element to the given . This - method always outputs an explicit <dependency> tag, instead of providing - attributes to the parent method. - - Writer to send XML content to. - - - - Generate an object - that will be used to configure the container for a type registration. - - Container that is being configured. Supplied in order - to let custom implementations retrieve services; do not configure the container - directly in this method. - Type of the parameter to get the value for. - The required object. - - - - Value for this element - - - - - - - - - + + + + Microsoft.Practices.Unity.Configuration + + + + + A configuration element storing information about a single type alias. + + + + + Base class for configuration elements with a default implementation of + public deserialization. + + + + + Load this element from the given . + + Contains the XML to initialize from. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Construct a new, uninitialized . + + + + + Construct a new that is initialized + to alias to the target . + + Alias to use. + Type that is aliased. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + The alias used for this type. + + + + + The fully qualified name this alias refers to. + + + + + A collection of s. + + + + + Specialization of + that provides a canned implementation of . + + Type of configuration element in the collection. + + + + A base helper class for implementing configuration collections. + + Type of configuration element contained in + the collection. + + + + Plug point to get objects out of the collection. + + Index in the collection to retrieve the item from. + Item at that index or null if not present. + + + + Plug point to get objects out of the collection. + + Key to look up the object by. + Item with that key or null if not present. + + + + Load this element from the given . + + Contains the XML to initialize from. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Add a new element to the collection. + + Element to add. + + + + Remove an element from the collection at the given index. + + The index of the item to remove. + + + + Remove all the items in the collection. + + + + + Write out the contents of this collection to the given + without a containing element + corresponding directly to this container element. Each + child element will have a tag name given by + . + + to output XML to. + Name of tag to generate. + + + + Indexer to retrieve items in the collection by index. + + Index of the item to get or set. + The item at the given index. + + + + When overridden in a derived class, creates a new . + + + A new . + + + + + Causes the configuration system to throw an exception. + + + true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. + + The name of the unrecognized element. + An input stream that reads XML from the configuration file. + The element specified in is the <clear> element. + starts with the reserved prefix "config" or "lock". + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Indexer that allows you to get or set an alias by the alias name. + + Alias of element to get or set. + The type name at that alias. + + + + A configuration element used to configure injection of + a specific set of values into an array. + + + + + Base class for configuration elements that describe a value that will + be injected. + + + + + Initialize a new instance of . + + + + + Generate an object + that will be used to configure the container for a type registration. + + Container that is being configured. Supplied in order + to let custom implementations retrieve services; do not configure the container + directly in this method. + Type of the + + + + + Validate that an expected attribute is present in the given + dictionary and that it has a non-empty value. + + Dictionary of name/value pairs to check. + attribute name to check. + + + + Return a unique string that can be used to identify this object. Used + by the configuration collection support. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Generate an object + that will be used to configure the container for a type registration. + + Container that is being configured. Supplied in order + to let custom implementations retrieve services; do not configure the container + directly in this method. + Type of the + + + + + Type of array to inject. This is actually the type of the array elements, + not the array type. Optional, if not specified we take the type from + our containing element. + + + + + Values used to calculate the contents of the array. + + + + + A configuration element representing the namespace + tags in the config file. + + + + + An element with a single "name" property, used for + the namespaces and assemblies. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Name attribute for this element. + + + + + A collection of s in configuration. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Helpful extension methods when implementing configuration sections + that deserialize "unwrapped" elements - elements that should be + deserialized into a container but can be present outside + that container in the actual config file. + + + + + Deserialize an element of the given type, store it in + the collection object, and + + Type of element to create and deserialize. + Parent element containing element to deserialize. + Xml reader containing state to deserialize from. + Collection to store the created element into. + The created element. + + + + Deserialize an element, basing the element type on the one + supplied at runtime, and then store the element into the + given . + + This method is useful when reading elements into a polymorphic collection. + Base type of element to store. + Element that contains the collection being stored into. + Xml Reader containing state to deserialize from. + Runtime type of element to create. + Collection to store the created element into. + The created element. + + + + Class that tracks the current input state of the parser. + + + + + A simple implementing of the rules for a Parsing Expression Grammar + parsing algorithm. This supplies basic methods to do the primitives + of the PEG, and combinators to create larger rules. + + + + + The PEG "dot" operator that matches and consumes one character. + + Input to the parser. + The parse result. + + + + Parse function generator that returns a method to match a single, + specific character. + + Character to match. + The generated parsing function. + + + + Parse function generator that checks if the current character matches + the predicate supplied. + + Predicate used to determine if the character is in + the given range. + The generated parsing function. + + + + The "*" operator - match zero or more of the inner parse expressions. + + Parse method to repeat matching. + The generated parsing function. + + + + Parsing combinator that matches all of the given expressions in + order, or matches none of them. + + Expressions that form the sequence to match. + The combined sequence. + + + + Parsing combinator that implements the PEG prioritized choice operator. Basically, + try each of the expressions in order, and match if any of them match, stopping on the + first match. + + Expressions that form the set of alternatives. + The combined parsing method. + + + + Parsing combinator implementing the "not" predicate. This wraps + the given parsing method with a check + to see if it matched. If it matched, then the Not fails, and vice + versa. The result consumes no input. + + The parse method to wrap. + The generated parsing function. + + + + Parsing expression that matches End of input. + + Parser input. + Parse result + + + + Combinator that executes an action if the given expression matched. + + Parsing expression to match. + Action to execute if + matched. Input is the matched text from . + The result of . + + + + Combinator that executes an action if the given expression matched. + + parsing expression to match. + Method to execute if a match happens. This method returns + the that will be returned from the combined expression. + The result of if expression matched, else + whatever returned. + + + + Object containing the result of attempting to match a PEG rule. + This object is the return type for all parsing methods. + + + + + Did the rule match? + + + + + The characters that were matched (if any) + + + + + Any extra information provided by the parsing expression + (only set if the parse matched). The nature + of the data varies depending on the parsing expression. + + + + + Helper methods to make it easier to pull the data + out of the result of a sequence expression. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + + true if is found in the ; otherwise, false. + + The object to locate in the . + + + + Copies the elements of the sequence to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this sequence. The must have zero-based indexing. + The zero-based index in at which copying begins. + is null. + is less than 0. + is multidimensional. + -or- + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from the . + + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The object to remove from the . + The is read-only. + + + + Determines the index of a specific item in the . + + + The index of if found in the list; otherwise, -1. + + The object to locate in the . + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Gets or sets the element at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + is not a valid index in the . + The property is set and the is read-only. + + + + Class containing information about a type name. + + + + + The base name of the class + + + + + Namespace if any + + + + + Assembly name, if any + + + + + Helper methods on . + + + + + A helper method to make it more foolproof to write elements. This takes care of writing the + start and end element tags, and takes a nested closure with the code to write the content of + the tag. That way the caller doesn't need to worry about the details of getting the start + and end tags correct. + + + We don't support XML Namespaces here because .NET configuration doesn't use them so + we don't need it for this current implementation. + + XmlWriter to write to. + Name of element. + Nested lambda which, when executed, will create the content for the + element. + (for method chaining if desired). + + + + A helper method to make it easier to output attributes. If the is + null or an empty string, output nothing, else output the given XML attribute. + + Writer to output to. + Attribute name to write. + Value for the attribute. + (for method chaining if desired). + + + + A base class for those elements that can be used + to configure a unity container. + + + + + Create a new instance of . + + + + + Apply this element's configuration to the given . + + Container to configure. + + + + Return a unique key that can be used to manage this element in a collection. + + + + + A couple of useful extension methods on IDictionary + + + + + Get the value from a dictionary, or null if there is no value. + + Key type of dictionary. + Value type of dictionary. + Dictionary to search. + Key to look up. + The value at the key or null if not in the dictionary. + + + + A helper class used to map element tag names to a handler method + used to interpret that element. + + + + + + Add method to enable dictionary initializer syntax + + + + + + + Process an unknown element according to the map entries. + + Parent element that hit this unknown element. + Name of the unknown element. + XmlReader positioned at start of element. + true if processed, false if not. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + A helper class used to map element tag names to a handler method + used to interpret that element. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + A helper class that assists in deserializing parameter and property + elements. These elements both have a single "value" child element that + specify the value to inject for the property or parameter. + + + + + Create a new that wraps reading + values and storing them in the given . + + Element that contains the value elements. + + + + Gets a , or if none is present, + returns a default . + + The . + The given , unless + is null, in which case returns + a . + + + + Helper method used during deserialization to handle + attributes for the dependency and value tags. + + attribute name. + attribute value. + true + + + + Helper method used during deserialization to handle the default + value element tags. + + The element name. + XML data to read. + True if deserialization succeeded, false if it failed. + + + + Call this method at the end of deserialization of your element to + set your value element. + + + + + Serialize a object out to XML. + This method is aware of and implements the shorthand attributes + for dependency and value elements. + + Writer to output XML to. + The to serialize. + If true, always output an element. If false, then + dependency and value elements will be serialized as attributes in the parent tag. + + + + Configuration element representing a constructor configuration. + + + + + Base class for configuration elements that generate + object to configure a container. + + + + + Return the set of s that are needed + to configure the container according to this configuration element. + + Container that is being configured. + Type that is being registered. + Type that is being mapped to. + Name this registration is under. + One or more objects that should be + applied to the container registration. + + + + Get the standard tag name for an + taking into account currently loaded section extensions. + + Element to get the name for. + The element name. + If the member element is not currently registered + with the section. + + + + Each element must have a unique key, which is generated by the subclasses. + + + + + Element name to use to serialize this into XML. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Return the set of s that are needed + to configure the container according to this configuration element. + + Container that is being configured. + Type that is being registered. + Type that is being mapped to. + Name this registration is under. + One or more objects that should be + applied to the container registration. + + + + The parameters of the constructor to call. + + + + + Each element must have a unique key, which is generated by the subclasses. + + + + + Element name to use to serialize this into XML. + + + + + A collection of s as + loaded from configuration. + + + + + When overridden in a derived class, creates a new . + + + A new . + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + A configuration element class defining the set of registrations to be + put into a container. + + + + + Original configuration API kept for backwards compatibility. + + Container to configure + + + + Apply the configuration information in this element to the + given . + + Container to configure. + + + + Gets a value indicating whether an unknown element is encountered during deserialization. + + + true when an unknown element is encountered while deserializing; otherwise, false. + + The name of the unknown subelement. + The being used for deserialization. + The element identified by is locked. + - or - + One or more of the element's attributes is locked. + - or - + is unrecognized, or the element has an unrecognized attribute. + - or - + The element has a Boolean attribute with an invalid value. + - or - + An attempt was made to deserialize a property more than once. + - or - + An attempt was made to deserialize a property that is not a valid member of the element. + - or - + The element cannot contain a CDATA or text element. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Name for this container configuration as given in the config file. + + + + + The type registrations in this container. + + + + + Any instances to register in the container. + + + + + Any extensions to add to the container. + + + + + Set of any extra configuration elements that were added by a + section extension. + + + This is not marked as a configuration property because we don't want + the actual property to show up as a nested element in the configuration. + + + + Configuration element representing an extension to add to a container. + + + + + Add the extension specified in this element to the container. + + Container to configure. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Type of the extension to add. + + + + + A collection of s. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + A derived class that describes + a parameter that should be resolved through the container. + + + + + Create a new instance of . + + + + + Create a new instance of with + properties initialized from the contents of + . + + Dictionary of name/value pairs to + initialize this object with. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Write the contents of this element to the given . This + method always outputs an explicit <dependency> tag, instead of providing + attributes to the parent method. + + Writer to send XML content to. + + + + Generate an object + that will be used to configure the container for a type registration. + + Container that is being configured. Supplied in order + to let custom implementations retrieve services; do not configure the container + directly in this method. + Type of the + + + + + Name to use to when resolving. If empty, resolves the default. + + + + + Name of type this dependency should resolve to. This is optional; + without it the container will resolve the type of whatever + property or parameter this element is contained in. + + + + + Base class used to derive new elements that can occur + directly within a container element. + + + + + Initialize a new instance of . + + + + + When overridden in a derived class, this method will make configuration + calls into the given according to its contents. + + The container to configure. + + + + Unique key generated for use in the collection class. + + + + + A collection of s. + + + + + When overridden in a derived class, creates a new . + + + A new . + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + This class manages the set of extension elements + added by section elements. + + + + + Clear the current set of extension elements. + + + + + Register a new ContainerExtensionConfigurationElement with he section so it + can be read. + + prefix if any. + tag name. + Type of element to register. + + + + Register a new with the section + so it can be read. + + prefix if any. + Tag name. + Type of element to register. + + + + Register a new with the section + so it can be read. + + prefix if any. + Tag name. + Type of element to register. + + + + Retrieve the registered for the given + tag. + + Tag to look up. + Type of element, or null if not registered. + + + + Retrieve the ContainerExtensionConfigurationElement registered for the given + tag. + + Tag to look up. + Type of element, or null if not registered. + + + + Retrieve the ContainerExtensionConfigurationElement registered for the given + tag. + + Tag to look up. + Type of element, or null if not registered. + + + + Retrieve the correct tag to use when serializing the given + to XML. + + Element to be serialized. + The tag for that element type. + if the element is of a type that + is not registered with the section already. + + + + A polymorphic collection of s. + + + + + Causes the configuration system to throw an exception. + + + true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. + + The name of the unrecognized element. + An input stream that reads XML from the configuration file. + The element specified in is the <clear> element. + starts with the reserved prefix "config" or "lock". + + + + + When overridden in a derived class, creates a new . + + + A new . + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Indexer that lets you access elements by their key. + + Key to retrieve element with. + The element. + + + + A configuration element that describes an instance to add to the container. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Add the instance defined by this element to the given container. + + Container to configure. + + + + Name to register instance under + + + + + Value for this instance + + + + + Type of the instance. If not given, defaults to string + + + + + Type name for the type converter to use to create the instance. If not + given, defaults to the default type converter for this instance type. + + + + + Key used to keep these instances unique in the config collection. + + + + + A collection of s. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + An element that has a child Value property. + + + + + String that will be deserialized to provide the value. + + + + + A string describing where the value this element contains + is being used. For example, if setting a property Prop1, + this should return "property Prop1" (in english). + + + + + A configuration element that represents lifetime managers. + + + + + Create the described by + this element. + + A instance. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Type of the lifetime manager. + + + + + Extra initialization information used by the type converter for this lifetime manager. + + + + + Type of to use to create the + lifetime manager. + + + + + A configuration element representing a method to call. + + + + + Construct a new instance of . + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Return the set of s that are needed + to configure the container according to this configuration element. + + Container that is being configured. + Type that is being registered. + Type that is being mapped to. + Name this registration is under. + One or more objects that should be + applied to the container registration. + + + + Name of the method to call. + + + + + Parameters to the method call. + + + + + Each element must have a unique key, which is generated by the subclasses. + + + + + Element name to use to serialize this into XML. + + + + + A configuration element representing the namespace + tags in the config file. + + + + + A collection of s in configuration. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for + + + + A configuration element that specifies that a value + is optional. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Generate an object + that will be used to configure the container for a type registration. + + Container that is being configured. Supplied in order + to let custom implementations retrieve services; do not configure the container + directly in this method. + Type of the + + + + + Name used to resolve the dependency, leave out or blank to resolve default. + + + + + Type of dependency to resolve. If left out, resolved the type of + the containing parameter or property. + + + + + Configuration element representing a parameter passed to a constructor + or a method. + + + + + Construct a new instance of . + + + + + Returns the required needed + to configure the container so that the correct value is injected. + + Container being configured. + Type of the parameter. + The value to use to configure the container. + + + + Does the information in this match + up with the given ? + + Information about the parameter. + True if this is a match, false if not. + + + + Reads XML from the configuration file. + + The that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + The element to read is locked. + - or - + An attribute of the current node is not recognized. + - or - + The lock status of the current node cannot be determined. + + + + + Gets a value indicating whether an unknown attribute is encountered during deserialization. + + + true when an unknown attribute is encountered while deserializing; otherwise, false. + + The name of the unrecognized attribute. + The value of the unrecognized attribute. + + + + Gets a value indicating whether an unknown element is encountered during deserialization. + + + true when an unknown element is encountered while deserializing; otherwise, false. + + The name of the unknown subelement. + The being used for deserialization. + The element identified by is locked. + - or - + One or more of the element's attributes is locked. + - or - + is unrecognized, or the element has an unrecognized attribute. + - or - + The element has a Boolean attribute with an invalid value. + - or - + An attempt was made to deserialize a property more than once. + - or - + An attempt was made to deserialize a property that is not a valid member of the element. + - or - + The element cannot contain a CDATA or text element. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Name of this parameter. + + + + + Type of this parameter. + + This is only needed in order to disambiguate method overloads. Normally + the parameter name is sufficient. + + + + Element that describes the value for this property. + + + This is NOT marked as a ConfigurationProperty because this + child element is polymorphic, and the element tag determines + the type. Standard configuration properties only let you do + this if it's a collection, but we only want one value. Thus + the separate property. The element is deserialized in + . + + + + A string describing where the value this element contains + is being used. For example, if setting a property Prop1, + this should return "property Prop1" (in english). + + + + + A collection of objects. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + A collection of objects. + + + + + Causes the configuration system to throw an exception. + + + true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. + + The name of the unrecognized element. + An input stream that reads XML from the configuration file. + The element specified in is the <clear> element. + starts with the reserved prefix "config" or "lock". + + + + When overridden in a derived class, creates a new . + + + A new . + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + String that will be deserialized to provide the value. + + + + + A string describing where the value this element contains + is being used. For example, if setting a property Prop1, + this should return "property Prop1" (in english). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to An abstract ContainerConfiguringElement cannot be created. Please specify a concrete type.. + + + + + Looks up a localized string similar to An abstract ExtensionConfigurationElement object cannot be created. Please specify a concrete type.. + + + + + Looks up a localized string similar to An abstract InjectionMemberElement object cannot be created. Please specify a concrete type.. + + + + + Looks up a localized string similar to An abstract ParameterValueElement object cannot be created. Please specify a concrete type.. + + + + + Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name.. + + + + + Looks up a localized string similar to The dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. + + + + + Looks up a localized string similar to The optional dependency element for generic parameter {0} must not have an explicit type name but has '{1}'.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to The injection configuration for {0} has multiple values.. + + + + + Looks up a localized string similar to The configuration element type {0} has not been registered with the section.. + + + + + Looks up a localized string similar to The injection configuration for {0} is specified through both attributes and child value elements.. + + + + + Looks up a localized string similar to Could not load section extension type {0}.. + + + + + Looks up a localized string similar to The extension type {0} does not derive from SectionExtension.. + + + + + Looks up a localized string similar to The extension element type {0} that is being added does not derive from ContainerConfiguringElement, InjectionMemberElement, or ParameterValueElement. An extension element must derive from one of these types.. + + + + + Looks up a localized string similar to No valid attributes were found to construct the value for the {0}. Please check the configuration file.. + + + + + Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a constructor that takes parameters named {1}.. + + + + + Looks up a localized string similar to Configuration is incorrect, the type {0} does not have a method named {1} that takes parameters named {2}.. + + + + + Looks up a localized string similar to The container named "{0}" is not defined in this configuration section.. + + + + + Looks up a localized string similar to The type {0} does not have a property named {1}.. + + + + + Looks up a localized string similar to The configuration is set to inject an array, but the type {0} is not an array type.. + + + + + Looks up a localized string similar to parameter. + + + + + Looks up a localized string similar to property. + + + + + Looks up a localized string similar to The attribute {0} must be present and non-empty.. + + + + + Looks up a localized string similar to The value element for {1} was specified for the generic array type {0}. Value elements are not allowed for generic array types.. + + + + + Looks up a localized string similar to The value element for {1} was specified for the generic parameter type {0}. Value elements are not allowed for generic parameter types.. + + + + + Looks up a localized string similar to The value element for {1} was specified for the generic type {0}. Value elements are not allowed for generic types.. + + + + + A class representing a property configuration element. + + + + + Construct a new instance of + + + + + Reads XML from the configuration file. + + The that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + The element to read is locked. + - or - + An attribute of the current node is not recognized. + - or - + The lock status of the current node cannot be determined. + + + + + Gets a value indicating whether an unknown attribute is encountered during deserialization. + + + true when an unknown attribute is encountered while deserializing; otherwise, false. + + The name of the unrecognized attribute. + The value of the unrecognized attribute. + + + + Gets a value indicating whether an unknown element is encountered during deserialization. + + + true when an unknown element is encountered while deserializing; otherwise, false. + + The name of the unknown subelement. + The being used for deserialization. + The element identified by is locked. + - or - + One or more of the element's attributes is locked. + - or - + is unrecognized, or the element has an unrecognized attribute. + - or - + The element has a Boolean attribute with an invalid value. + - or - + An attempt was made to deserialize a property more than once. + - or - + An attempt was made to deserialize a property that is not a valid member of the element. + - or - + The element cannot contain a CDATA or text element. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Return the set of s that are needed + to configure the container according to this configuration element. + + Container that is being configured. + Type that is being registered. + Type that is being mapped to. + Name this registration is under. + One or more objects that should be + applied to the container registration. + + + + Name of the property that will be set. + + + + + Each element must have a unique key, which is generated by the subclasses. + + + + + String that will be deserialized to provide the value. + + + + + A string describing where the value this element contains + is being used. For example, if setting a property Prop1, + this should return "property Prop1" (in english). + + + + + Element name to use to serialize this into XML. + + + + + A configuration element representing a single container type registration. + + + + + Apply the registrations from this element to the given container. + + Container to configure. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + The type that is registered. + + + + + Name registered under. + + + + + Type that is mapped to. + + + + + Lifetime manager to register for this registration. + + + + + Any injection members (constructor, properties, etc.) that are specified for + this registration. + + + + + A collection of s. + + + + + Causes the configuration system to throw an exception. + + + true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. + + The name of the unrecognized element. + An input stream that reads XML from the configuration file. + The element specified in is the <clear> element. + starts with the reserved prefix "config" or "lock". + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Base class for Unity configuration section extensions. + Derived classes are used to add custom elements and aliases + into the configuration section being loaded. + + + + + Add the extensions to the section via the context. + + Context object that can be used to add elements and aliases. + + + + An object that gives the ability to add + elements and aliases to a configuration section. + + + + + Add a new alias to the configuration section. This is useful + for those extensions that add commonly used types to configuration + so users don't have to alias them repeatedly. + + The alias to use. + Type the alias maps to. + + + + Add a new alias to the configuration section. This is useful + for those extensions that add commonly used types to configuration + so users don't have to alias them repeatedly. + + Type the alias maps to. + The alias to use + + + + Add a new element to the configuration section schema. + + Tag name in the XML. + Type the tag maps to. + + + + Add a new element to the configuration section schema. + + Type the tag maps to. + Tag name in the XML. + + + + A configuration element used to specify which extensions to + add to the configuration schema. + + + + + Reads XML from the configuration file. + + The that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + The element to read is locked. + - or - + An attribute of the current node is not recognized. + - or - + The lock status of the current node cannot be determined. + + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Type of the section extender object that will provide new elements to the schema. + + + + + Optional prefix that will be added to the element names added by this + section extender. If left out, no prefix will be added. + + + + + The extension object represented by this element. + + + + + A collection of s. + + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Type that manage access to a set of type aliases and implements + the logic for converting aliases to their actual types. + + + + + Set the set of aliases to use for resolution. + + Configuration section containing the various + type aliases, namespaces and assemblies. + + + + Resolves a type alias or type FullName to a concrete type. + + Type alias or type FullName + Type object or null if resolve fails. + Thrown if alias lookup fails. + + + + Resolves a type alias or type FullName to a concrete type. + + Alias or name to resolve. + if true and the alias does not + resolve, throw an , otherwise + return null on failure. + The type object or null if resolve fails and + is false. + + + + Resolve a type alias or type full name to a concrete type. + If is null or empty, return the + given instead. + + Type alias or full name to resolve. + Value to return if typeName is null or empty. + The concrete . + Thrown if alias lookup fails. + + + + Resolve a type alias or type full name to a concrete type. + If is null or empty, return the + given instead. + + Type alias or full name to resolve. + Value to return if typeName is null or empty. + if true and the alias does not + resolve, throw an , otherwise + return null on failure. + The concrete . + Thrown if alias lookup fails and + is true. + + + + A helper class that implements the actual logic for resolving a shorthand + type name (alias or raw type name) into an actual type object. + + + + + Construct a new that uses the given + sequence of alias, type name pairs to resolve types. + + Type aliases from the configuration file. + Assembly names to search. + Namespaces to search. + + + + Resolves a type alias or type FullName to a concrete type. + + Alias or name to resolve. + if true and the alias does not + resolve, throw an , otherwise + return null on failure. + The type object or null if resolve fails and + is false. + + + + Resolve a type alias or type full name to a concrete type. + If is null or empty, return the + given instead. + + Type alias or full name to resolve. + Value to return if typeName is null or empty. + if true and the alias does not + resolve, throw an , otherwise + return null on failure. + + If is null or an empty string, + then return . + Otherwise, return the resolved type object. If the resolution fails + and is false, then return null. + + + + + A configuration section describing configuration for an . + + + + + The name of the section where unity configuration is expected to be found. + + + + + XML Namespace string used for IntelliSense in this section. + + + + + Apply the configuration in the default container element to the given container. + + Container to configure. + The passed in . + + + + Apply the configuration in the default container element to the given container. + + Container to configure. + Name of the container element to use to configure the container. + The passed in . + + + + Reads XML from the configuration file. + + The object, which reads from the configuration file. + found no elements in the configuration file. + + + + Gets a value indicating whether an unknown element is encountered during deserialization. + + + true when an unknown element is encountered while deserializing; otherwise, false. + + The name of the unknown subelement. + The being used for deserialization. + + The element identified by is locked. + - or - + One or more of the element's attributes is locked. + - or - + is unrecognized, or the element has an unrecognized attribute. + - or - + The element has a Boolean attribute with an invalid value. + - or - + An attempt was made to deserialize a property more than once. + - or - + An attempt was made to deserialize a property that is not a valid member of the element. + - or - + The element cannot contain a CDATA or text element. + + + + + Creates an XML string containing an unmerged view of the object as a single section to write to a file. + + + An XML string containing an unmerged view of the object. + + The instance to use as the parent when performing the un-merge. + The name of the section to create. + The instance to use when writing to a string. + + + + The current that is being deserialized + or being configured from. + + + + + Storage for XML namespace. The namespace isn't used or validated by config, but + it is useful for Visual Studio XML IntelliSense to kick in. + + + + + The set of containers defined in this configuration section. + + + + + The set of type aliases defined in this configuration file. + + + + + Any schema extensions that are added. + + + + + Any namespaces added to the type search list. + + + + + Any assemblies added to the type search list. + + + + + Add a new alias to the configuration section. This is useful + for those extensions that add commonly used types to configuration + so users don't have to alias them repeatedly. + + The alias to use. + Type the alias maps to. + + + + Add a new element to the configuration section schema. + + Tag name in the XML. + Type the tag maps to. + + + + Collection element for s. + + + + + Plug point to get objects out of the collection. + + Index in the collection to retrieve the item from. + Item at that index or null if not present. + + + + Plug point to get objects out of the collection. + + Key to look up the object by. + Item with that key or null if not present. + + + + Gets the element key for a specified configuration element when overridden in a derived class. + + + An that acts as the key for the specified . + + The to return the key for. + + + + Retrieve a stored by name. + + Name to look up. + The stored container or null if not in the collection. + + + + Return the default container in the collection. The default is the one without a name. + + + + + Extensions to to simplify + loading configuration into a container. + + + + + Apply configuration from the given section and named container + into the given container. + + Unity container to configure. + Configuration section with config information. + Named container. + . + + + + Apply configuration from the default section (named "unity" pulled out of + ConfigurationManager) and the named container. + + Unity container to configure. + Named container element in configuration. + . + + + + Apply configuration from the default section and unnamed container element. + + Container to configure. + . + + + + Apply configuration from the default container in the given section. + + Unity container to configure. + Configuration section. + . + + + + Element that describes a constant value that will be + injected into the container. + + + + + Construct a new object. + + + + + Construct a new object, + initializing properties from the contents of + . + + Name/value pairs which + contain the values to initialize properties to. + + + + Write the contents of this element to the given . + + The caller of this method has already written the start element tag before + calling this method, so deriving classes only need to write the element content, not + the start or end tags. + Writer to send XML content to. + + + + Write the contents of this element to the given . This + method always outputs an explicit <dependency> tag, instead of providing + attributes to the parent method. + + Writer to send XML content to. + + + + Generate an object + that will be used to configure the container for a type registration. + + Container that is being configured. Supplied in order + to let custom implementations retrieve services; do not configure the container + directly in this method. + Type of the parameter to get the value for. + The required object. + + + + Value for this element + + + + + + + + + diff --git a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.xml b/src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.xml similarity index 94% rename from src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.xml rename to src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.xml index 2e0af9b..f99ca70 100644 --- a/src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.xml +++ b/src/packages/Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.xml @@ -1,5910 +1,5916 @@ - - - - Microsoft.Practices.Unity - - - - - Base class for attributes that can be placed on parameters - or properties to specify how to resolve the value for - that parameter or property. - - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - This attribute is used to indicate which constructor to choose when - the container attempts to build a type. - - - - - This attribute is used to mark methods that should be called when - the container is building an object. - - - - - This attribute is used to mark properties and parameters as targets for injection. - - - For properties, this attribute is necessary for injection to happen. For parameters, - it's not needed unless you want to specify additional information to control how - the parameter is resolved. - - - - - Create an instance of with no name. - - - - - Create an instance of with the given name. - - Name to use when resolving this dependency. - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - The name specified in the constructor. - - - - - An used to mark a dependency - as optional - the container will try to resolve it, and return null - if the resolution fails rather than throw. - - - - - Construct a new object. - - - - - Construct a new object that - specifies a named dependency. - - Name of the dependency. - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - Name of the dependency. - - - - - A that composites other - ResolverOverride objects. The GetResolver operation then - returns the resolver from the first child override that - matches the current context and request. - - - - - Base class for all override objects passed in the - method. - - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Wrap this resolver in one that verifies the type of the object being built. - This allows you to narrow any override down to a specific type easily. - - Type to constrain the override to. - The new override. - - - - Wrap this resolver in one that verifies the type of the object being built. - This allows you to narrow any override down to a specific type easily. - - Type to constrain the override to. - The new override. - - - - Add a new to the collection - that is checked. - - item to add. - - - - Add a setof s to the collection. - - items to add. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Class that returns information about the types registered in a container. - - - - - The type that was passed to the method - as the "from" type, or the only type if type mapping wasn't done. - - - - - The type that this registration is mapped to. If no type mapping was done, the - property and this one will have the same value. - - - - - Name the type was registered under. Null for default registration. - - - - - The registered lifetime manager instance. - - - - - The lifetime manager for this registration. - - - This property will be null if this registration is for an open generic. - - - - A class that overrides - the value injected whenever there is a dependency of the - given type, regardless of where it appears in the object graph. - - - - - Create an instance of to override - the given type with the given value. - - Type of the dependency. - Value to use. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience version of that lets you - specify the dependency type using generic syntax. - - Type of the dependency to override. - - - - Construct a new object that will - override the given dependency, and pass the given value. - - - - - A convenience form of that lets you - specify multiple parameter overrides in one shot rather than having - to construct multiple objects. - - - This class isn't really a collection, it just implements IEnumerable - so that we get use of the nice C# collection initializer syntax. - - - - - Base helper class for creating collections of objects - for use in passing a bunch of them to the resolve call. This base class provides - the mechanics needed to allow you to use the C# collection initializer syntax. - - Concrete type of the this class collects. - Key used to create the underlying override object. - Value that the override returns. - - - - Add a new override to the collection with the given key and value. - - Key - for example, a parameter or property name. - Value - the value to be returned by the override. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - Event argument class for the event. - - - - - Construct a new object with the - given child container object. - - An for the newly created child - container. - - - - The newly created child container. - - - - - An extension context for the created child container. - - - - - Base class for subclasses that let you specify that - an instance of a generic type parameter should be resolved. - - - - - Base type for objects that are used to configure parameters for - constructor or method injection, or for getting the value to - be injected into a property. - - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Convert the given set of arbitrary values to a sequence of InjectionParameterValue - objects. The rules are: If it's already an InjectionParameterValue, return it. If - it's a Type, return a ResolvedParameter object for that type. Otherwise return - an InjectionParameter object for that value. - - The values to build the sequence from. - The resulting converted sequence. - - - - Convert an arbitrary value to an InjectionParameterValue object. The rules are: - If it's already an InjectionParameterValue, return it. If it's a Type, return a - ResolvedParameter object for that type. Otherwise return an InjectionParameter - object for that value. - - The value to convert. - The resulting . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - A that lets you specify that - an instance of a generic type parameter should be resolved, providing the - value if resolving fails. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - A class that lets you specify a factory method the container - will use to create the object. - - This is a significantly easier way to do the same - thing the old static factory extension was used for. - - - - Base class for objects that can be used to configure what - class members get injected by the container. - - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type to register. - Policy list to add policies to. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface being registered. If no interface, - this will be null. - Type of concrete type being registered. - Name used to resolve the type object. - Policy list to add policies to. - - - - Create a new instance of with - the given factory function. - - Factory function. - - - - Create a new instance of with - the given factory function. - - Factory function. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface being registered. If no interface, - this will be null. This parameter is ignored in this implementation. - Type of concrete type being registered. - Name used to resolve the type object. - Policy list to add policies to. - - - - A that can be passed to - to configure a - parameter or property as an optional dependency. - - - - - A base class for implementing classes - that deal in explicit types. - - - - - Create a new that exposes - information about the given . - - Type of the parameter. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - The type of parameter this object represents. - - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - Construct a new object that - specifies the given . - - Type of the dependency. - - - - Construct a new object that - specifies the given and . - - Type of the dependency. - Name for the dependency. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of that lets you - specify the type of the dependency using generics syntax. - - Type of the dependency. - - - - Construct a new . - - - - - Construct a new with the given - . - - Name of the dependency. - - - - A special lifetime manager which works like , - except that in the presence of child containers, each child gets it's own instance - of the object, instead of sharing one in the common parent. - - - - - A that holds onto the instance given to it. - When the is disposed, - the instance is disposed with it. - - - - - Base class for Lifetime managers which need to synchronize calls to - . - - - - The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. - - - Calls to the method of a - instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released - when such an initialization takes place by calling the method or if - the build request which resulted in the call to the GetValue method fails. - - - - - - - Base class for Lifetime managers - classes that control how - and when instances are created by the Unity container. - - - - - A that controls how instances are - persisted and recovered from an external store. Used to implement - things like singletons and per-http-request lifetime. - - - - - Represents a builder policy interface. Since there are no fixed requirements - for policies, it acts as a marker interface from which to derive all other - policy interfaces. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object to store. - - - - Remove the value this lifetime policy is managing from backing store. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - This interface provides a hook for the builder context to - implement error recovery when a builder strategy throws - an exception. Since we can't get try/finally blocks onto - the call stack for later stages in the chain, we instead - add these objects to the context. If there's an exception, - all the current IRequiresRecovery instances will have - their Recover methods called. - - - - - A method that does whatever is needed to clean up - as part of cleaning up after an exception. - - - Don't do anything that could throw in this method, - it will cause later recover operations to get skipped - and play real havoc with the stack trace. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - Calls to this method acquire a lock which is released only if a non-null value - has been set for the lifetime manager. - - - - Performs the actual retrieval of a value from the backing store associated - with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - This method is invoked by - after it has acquired its lock. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - Setting a value will attempt to release the lock acquired by - . - - - - Performs the actual storage of the given value into backing store for retrieval later. - - The object being stored. - This method is invoked by - before releasing its lock. - - - - Remove the given object from backing store. - - - - - A method that does whatever is needed to clean up - as part of cleaning up after an exception. - - - Don't do anything that could throw in this method, - it will cause later recover operations to get skipped - and play real havoc with the stack trace. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. - - Always true, since we don't have a finalizer. - - - - This is a custom lifetime manager that acts like , - but also provides a signal to the default build plan, marking the type so that - instances are reused across the build up object graph. - - - - - Construct a new object that does not - itself manage an instance. - - - - - Construct a new object that stores the - give value. This value will be returned by - but is not stored in the lifetime manager, nor is the value disposed. - This Lifetime manager is intended only for internal use, which is why the - normal method is not used here. - - Value to store. - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. In this class, - this is a noop, since it has special hooks down in the guts. - - The object being stored. - - - - Remove the given object from backing store. Noop in this class. - - - - - A strategy that handles Hierarchical lifetimes across a set of parent/child - containers. - - - - - Represents a strategy in the chain of responsibility. - Strategies are required to support both BuildUp and TearDown. - - - - - Represents a strategy in the chain of responsibility. - Strategies are required to support both BuildUp and TearDown. Although you - can implement this interface directly, you may also choose to use - as the base class for your strategies, as - this class provides useful helper methods and makes support BuildUp and TearDown - optional. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a teardown operation. The - PostTearDown method is called when the chain has finished the PreTearDown - phase and executes in reverse order from the PreTearDown calls. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a teardown operation. The - PostTearDown method is called when the chain has finished the PreTearDown - phase and executes in reverse order from the PreTearDown calls. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - A that will attempt to - resolve a value, and return null if it cannot rather than throwing. - - - - - A that is used at build plan execution time - to resolve a dependent value. - - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - Construct a new object - that will attempt to resolve the given name and type from the container. - - Type to resolve. Must be a reference type. - Name to resolve with. - - - - Construct a new object - that will attempt to resolve the given type from the container. - - Type to resolve. Must be a reference type. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - Type this resolver will resolve. - - - - - Name this resolver will resolve. - - - - - Extension methods on to provide convenience - overloads (generic versions, mostly). - - - - - Removes an individual policy type for a build key. - - The type the policy was registered as. - to remove the policy from. - The key the policy applies. - - - - Removes a default policy. - - The type the policy was registered as. - to remove the policy from. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Sets an individual policy. - - The interface the policy is registered under. - to add the policy to. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - to add the policy to. - The default policy to be registered. - - - - Base class for the current operation stored in the build context. - - - - - Create a new . - - Type currently being built. - - - - The type that's currently being built. - - - - - Build plan for that will - return a func that will resolve the requested type - through this container later. - - - - - A build plan is an object that, when invoked, will create a new object - or fill in a given existing one. It encapsulates all the information - gathered by the strategies to construct a particular object. - - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - The almost inevitable collection of extra helper methods on - to augment the rich set of what - Linq already gives us. - - - - - Execute the provided on every item in . - - Type of the items stored in - Sequence of items to process. - Code to run over each item. - - - - Create a single string from a sequenc of items, separated by the provided , - and with the conversion to string done by the given . - - This method does basically the same thing as , - but will work on any sequence of items, not just arrays. - Type of items in the sequence. - Sequence of items to convert. - Separator to place between the items in the string. - The conversion function to change TItem -> string. - The resulting string. - - - - Create a single string from a sequenc of items, separated by the provided , - and with the conversion to string done by the item's method. - - This method does basically the same thing as , - but will work on any sequence of items, not just arrays. - Type of items in the sequence. - Sequence of items to convert. - Separator to place between the items in the string. - The resulting string. - - - - A class that lets you - override a named parameter passed to a constructor. - - - - - Construct a new object that will - override the given named constructor parameter, and pass the given - value. - - Name of the constructor parameter. - Value to pass for the constructor. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience form of that lets you - specify multiple parameter overrides in one shot rather than having - to construct multiple objects. - - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - A that lets you override - the value for a specified property. - - - - - Create an instance of . - - The property name. - Value to use for the property. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience form of that lets you - specify multiple property overrides in one shot rather than having - to construct multiple objects. - - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - Interface defining the configuration interface exposed by the - Static Factory extension. - - - - - Base interface for all extension configuration interfaces. - - - - - Retrieve the container instance that we are currently configuring. - - - - - Register the given factory delegate to be called when the container is - asked to resolve . - - Type that will be requested from the container. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - Register the given factory delegate to be called when the container is - asked to resolve and . - - Type that will be requested from the container. - The name that will be used when requesting to resolve this type. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - Represents the context in which a build-up or tear-down operation runs. - - - - - Represents the context in which a build-up or tear-down operation runs. - - - - - Add a new set of resolver override objects to the current build operation. - - objects to add. - - - - Get a object for the given - or null if that dependency hasn't been overridden. - - Type of the dependency. - Resolver to use, or null if no override matches for the current operation. - - - - A convenience method to do a new buildup operation on an existing context. - - Key to use to build up. - Created object. - - - - A convenience method to do a new buildup operation on an existing context. This - overload allows you to specify extra policies which will be in effect for the duration - of the build. - - Key defining what to build up. - A delegate that takes a . This - is invoked with the new child context before the build up process starts. This gives callers - the opportunity to customize the context for the build process. - Created object. - - - - Gets the head of the strategy chain. - - - The strategy that's first in the chain; returns null if there are no - strategies in the chain. - - - - - Gets the associated with the build. - - - The associated with the build. - - - - - Gets the original build key for the build operation. - - - The original build key for the build operation. - - - - - Get the current build key for the current build operation. - - - - - The set of policies that were passed into this context. - - This returns the policies passed into the context. - Policies added here will remain after buildup completes. - The persistent policies for the current context. - - - - Gets the policies for the current context. - - Any policies added to this object are transient - and will be erased at the end of the buildup. - - The policies for the current context. - - - - - Gets the collection of objects - that need to execute in event of an exception. - - - - - The current object being built up or torn down. - - - The current object being manipulated by the build operation. May - be null if the object hasn't been created yet. - - - - Flag indicating if the build operation should continue. - - true means that building should not call any more - strategies, false means continue to the next strategy. - - - - An object representing what is currently being done in the - build chain. Used to report back errors if there's a failure. - - - - - The build context used to resolve a dependency during the build operation represented by this context. - - - - - Initialize a new instance of the class. - - - - - Initialize a new instance of the class with a , - , and the - build key used to start this build operation. - - The to use for this context. - The to use for this context. - The to use for this context. - Build key to start building. - The existing object to build up. - - - - Create a new using the explicitly provided - values. - - The to use for this context. - The to use for this context. - The set of persistent policies to use for this context. - The set of transient policies to use for this context. It is - the caller's responsibility to ensure that the transient and persistent policies are properly - combined. - Build key for this context. - Existing object to build up. - - - - Add a new set of resolver override objects to the current build operation. - - objects to add. - - - - Get a object for the given - or null if that dependency hasn't been overridden. - - Type of the dependency. - Resolver to use, or null if no override matches for the current operation. - - - - A convenience method to do a new buildup operation on an existing context. - - Key to use to build up. - Created object. - - - - A convenience method to do a new buildup operation on an existing context. This - overload allows you to specify extra policies which will be in effect for the duration - of the build. - - Key defining what to build up. - A delegate that takes a . This - is invoked with the new child context before the build up process starts. This gives callers - the opportunity to customize the context for the build process. - Created object. - - - - Gets the head of the strategy chain. - - - The strategy that's first in the chain; returns null if there are no - strategies in the chain. - - - - - Get the current build key for the current build operation. - - - - - The current object being built up or torn down. - - - The current object being manipulated by the build operation. May - be null if the object hasn't been created yet. - - - - Gets the associated with the build. - - - The associated with the build. - - - - - Gets the original build key for the build operation. - - - The original build key for the build operation. - - - - - The set of policies that were passed into this context. - - This returns the policies passed into the context. - Policies added here will remain after buildup completes. - The persistent policies for the current context. - - - - Gets the policies for the current context. - - - Any modifications will be transient (meaning, they will be forgotten when - the outer BuildUp for this context is finished executing). - - - The policies for the current context. - - - - - Gets the collection of objects - that need to execute in event of an exception. - - - - - Flag indicating if the build operation should continue. - - true means that building should not call any more - strategies, false means continue to the next strategy. - - - - An object representing what is currently being done in the - build chain. Used to report back errors if there's a failure. - - - - - The build context used to resolve a dependency during the build operation represented by this context. - - - - - Represents that a dependency could not be resolved. - - - Represents that a dependency could not be resolved. - - - - - Initializes a new instance of the class with no extra information. - - - - - Initializes a new instance of the class with the given message. - - Some random message. - - - - Initialize a new instance of the class with the given - message and inner exception. - - Some random message - Inner exception. - - - - Initializes a new instance of the class with the build key of the object begin built. - - The build key of the object begin built. - - - - Initializes a new instance of the class with serialized data. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - - The exception thrown when injection is attempted on a method - that is an open generic or has out or ref params. - - - The exception thrown when injection is attempted on a method - that is an open generic or has out or ref params. - - - - - Construct a new with no - message. - - - - - Construct a with the given message - - Message to return. - - - - Construct a with the given message - and inner exception. - - Message to return. - Inner exception - - - - Used for serialization. - - Serialization info. - Serialization context. - - - - Extension methods to provide convenience overloads over the - interface. - - - - - Start a recursive build up operation to retrieve the default - value for the given type. - - Type of object to build. - Parent context. - Resulting object. - - - - Start a recursive build up operation to retrieve the named - implementation for the given type. - - Type to resolve. - Parent context. - Name to resolve with. - The resulting object. - - - - Add a set of s to the context, specified as a - variable argument list. - - Context to add overrides to. - The overrides. - - - - Data structure that stores the set of - objects and executes them when requested. - - - - - Add a new object to this - list. - - Object to add. - - - - Execute the method - of everything in the recovery list. Recoveries will execute - in the opposite order of add - it's a stack. - - - - - Return the number of recovery objects currently in the stack. - - - - - Represents a lifetime container. - - - A lifetime container tracks the lifetime of an object, and implements - IDisposable. When the container is disposed, any objects in the - container which implement IDisposable are also disposed. - - - - - Adds an object to the lifetime container. - - The item to be added to the lifetime container. - - - - Determine if a given object is in the lifetime container. - - - The item to locate in the lifetime container. - - - Returns true if the object is contained in the lifetime - container; returns false otherwise. - - - - - Removes an item from the lifetime container. The item is - not disposed. - - The item to be removed. - - - - Gets the number of references in the lifetime container - - - The number of references in the lifetime container - - - - - Represents a lifetime container. - - - A lifetime container tracks the lifetime of an object, and implements - IDisposable. When the container is disposed, any objects in the - container which implement IDisposable are also disposed. - - - - - Adds an object to the lifetime container. - - The item to be added to the lifetime container. - - - - Determine if a given object is in the lifetime container. - - - The item to locate in the lifetime container. - - - Returns true if the object is contained in the lifetime - container; returns false otherwise. - - - - - Releases the resources used by the . - - - - - Releases the managed resources used by the DbDataReader and optionally releases the unmanaged resources. - - - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - - Returns an enumerator that iterates through the lifetime container. - - - An object that can be used to iterate through the life time container. - - - - - Returns an enumerator that iterates through the lifetime container. - - - An object that can be used to iterate through the life time container. - - - - - Removes an item from the lifetime container. The item is - not disposed. - - The item to be removed. - - - - Gets the number of references in the lifetime container - - - The number of references in the lifetime container - - - - - A custom collection over objects. - - - - - Removes an individual policy type for a build key. - - The type of policy to remove. - The key the policy applies. - - - - Removes all policies from the list. - - - - - Removes a default policy. - - The type the policy was registered as. - - - - Gets an individual policy. - - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - The key the policy applies to. - True if the search should be in the local policy list only; otherwise false to search up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list if present; returns null otherwise. - - - - Sets an individual policy. - - The of the policy. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - The default policy to be registered. - - - - A custom collection wrapper over objects. - - - - - Initialize a new instance of a class. - - - - - Initialize a new instance of a class with another policy list. - - An inner policy list to search. - - - - Removes an individual policy type for a build key. - - The type of policy to remove. - The key the policy applies. - - - - Removes all policies from the list. - - - - - Removes a default policy. - - The type the policy was registered as. - - - - Gets an individual policy. - - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - The key the policy applies to. - True if the search should be in the local policy list only; otherwise false to search up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list if present; returns null otherwise. - - - - Sets an individual policy. - - The of the policy. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - The default policy to be registered. - - - - Gets the number of items in the locator. - - - The number of items in the locator. - - - - - An implementation of . - - - - - Add a new object to this - list. - - Object to add. - - - - Execute the method - of everything in the recovery list. Recoveries will execute - in the opposite order of add - it's a stack. - - - - - Return the number of recovery objects currently in the stack. - - - - - Implementation of which will notify an object about - the completion of a BuildUp operation, or start of a TearDown operation. - - - This strategy checks the object that is passing through the builder chain to see if it - implements IBuilderAware and if it does, it will call - and . This strategy is meant to be used from the - stage. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Implemented on a class when it wants to receive notifications - about the build process. - - - - - Called by the when the object is being built up. - - The key of the object that was just built up. - - - - Called by the when the object is being torn down. - - - - - Enumeration to represent the object builder stages. - - - The order of the values in the enumeration is the order in which the stages are run. - - - - - Strategies in this stage run before creation. Typical work done in this stage might - include strategies that use reflection to set policies into the context that other - strategies would later use. - - - - - Strategies in this stage create objects. Typically you will only have a single policy-driven - creation strategy in this stage. - - - - - Strategies in this stage work on created objects. Typical work done in this stage might - include setter injection and method calls. - - - - - Strategies in this stage work on objects that are already initialized. Typical work done in - this stage might include looking to see if the object implements some notification interface - to discover when its initialization stage has been completed. - - - - - Represents a builder policy for mapping build keys. - - - - - Represents a builder policy for mapping build keys. - - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping. This parameter can be null - (called when getting container registrations). - The new build key. - - - - Initialize a new instance of the with the new build key. - - The new build key. - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping, unused in this implementation. - The new build key. - - - - Represents a strategy for mapping build keys in the build up operation. - - - - - Called during the chain of responsibility for a build operation. Looks for the - and if found maps the build key for the current operation. - - The context for the operation. - - - - An implementation of that can map - generic types. - - - - - Create a new instance - that will map generic types. - - Build key to map to. This must be or contain an open generic type. - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping. - The new build key. - - - - A that will look for a build plan - in the current context. If it exists, it invokes it, otherwise - it creates one and stores it for later, and invokes it. - - - - - Called during the chain of responsibility for a build operation. - - The context for the operation. - - - - An implementation of that chooses - constructors based on these criteria: first, pick a constructor marked with the - attribute. If there - isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, - then throw. - - Thrown when the constructor to choose is ambiguous. - Attribute used to mark the constructor to call. - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - - - - A that, when implemented, - will determine which constructor to call from the build plan. - - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - - Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y. - - - The second object to compare. - The first object to compare. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Objects of this type are the return value from . - It encapsulates the desired with the string keys - needed to look up the for each - parameter. - - - - - Base class for return values from selector policies that - return a memberinfo of some sort plus a list of parameter - keys to look up the parameter resolvers. - - - - - Base class for return of selector policies that need - to keep track of a set of parameter keys. - - - - - Add a new parameter key to this object. Keys are assumed - to be in the order of the parameters to the constructor. - - Key for the next parameter to look up. - - - - The set of keys for the constructor parameters. - - - - - Construct a new , storing - the given member info. - - Member info to store. - - - - The member info stored. - - - - - Create a new instance which - contains the given constructor. - - The constructor to wrap. - - - - The constructor this object wraps. - - - - - This class records the information about which constructor argument is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - The type that is being constructed. - A string representing the constructor being called. - Parameter being resolved. - - - - Generate the string describing what parameter was being resolved. - - The description string. - - - - String describing the constructor being set up. - - - - - Parameter that's being resolved. - - - - - A that emits IL to call constructors - as part of creating a build plan. - - - - - Called during the chain of responsibility for a build operation. - - Existing object is an instance of . - The context for the operation. - - - - A helper method used by the generated IL to throw an exception if - a dependency cannot be resolved. - - The currently being - used for the build of this object. - - - - A helper method used by the generated IL to throw an exception if - a dependency cannot be resolved because of an invalid constructor. - - The currently being - used for the build of this object. - The signature of the invalid constructor. - - - - A helper method used by the generated IL to throw an exception if - no existing object is present, but the user is attempting to build - an interface (usually due to the lack of a type mapping). - - The currently being - used for the build of this object. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager - if the current object is such. - - Current build context. - - - - A class that records that a constructor is about to be call, and is - responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Generate the description string. - - The string. - - - - Constructor we're trying to call. - - - - - An implementation of that will - check for full trust and if we're building a class or an interface. If in full - trust, attach to the class or module of the interface respectively. If in partial - trust, attach to the OB2 module instead. - - - - - This interface defines a policy that manages creation of the dynamic methods - used by the ObjectBuilder code generation. This way, we can replace the details - of how the dynamic method is created to handle differences in CLR (like Silverlight - vs desktop) or security policies. - - - - - Create a builder method for the given type, using the given name. - - Type that will be built by the generated method. - Name to give to the method. - A object with the proper signature to use - as part of a build plan. - - - - Create a builder method for the given type, using the given name. - - Type that will be built by the generated method. - Name to give to the method. - A object with the proper signature to use - as part of a build plan. - - - - This object tracks the current state of the build plan generation, - accumulates the IL, provides the preamble & postamble for the dynamic - method, and tracks things like local variables in the generated IL - so that they can be reused across IL generation strategies. - - - - - Create a that is initialized - to handle creation of a dynamic method to build the given type. - - Type that we're trying to create a build plan for. - An object that actually - creates our object. - - - - Completes generation of the dynamic method and returns the - generated dynamic method delegate. - - The created - - - - Emit the IL to put the build context on top of the IL stack. - - - - - Emit the IL to put the current build key on top of the IL stack. - - - - - Emit the IL to put the current "existing" object on the top of the IL stack. - - - - - Emit the IL to make the top of the IL stack our current "existing" object. - - - - - Emit the IL to load the given object onto the top of the IL stack. - - Type to load on the stack. - - - - Emit the IL needed to look up an and - call it to get a value. - - Type of the dependency to resolve. - Key to look up the policy by. - - - - Emit the IL needed to clear the . - - - - - Emit the IL needed to either cast the top of the stack to the target type - or unbox it, if it's a value type. - - Type to convert the top of the stack to. - - - - A helper method used by the generated IL to clear the current operation in the build context. - - - - - Helper method used by generated IL to look up a dependency resolver based on the given key. - - Current build context. - Type of the dependency being resolved. - Key the resolver was stored under. - The found dependency resolver. - - - - A reflection helper method to make it easier to grab a property getter - for the given property. - - Type that implements the property we want. - Type of the property. - Name of the property. - The property getter's . - - - - A reflection helper method that makes it easier to grab a - for a method. - - Type that implements the method we want. - Name of the method. - Types of arguments to the method. - The method's . - - - - The underlying that can be used to - emit IL into the generated dynamic method. - - - - - The type we're currently creating the method to build. - - - - - A delegate type that defines the signature of the - dynamic method created by the build plans. - - used to build up the object. - - - - An implementation of that runs the - given delegate to execute the plan. - - - - - An implementation - that constructs a build plan via dynamic IL emission. - - - - - A that can create and return an - for the given build key. - - - - - Create a build plan using the given context and build key. - - Current build context. - Current build key. - The build plan. - - - - Construct a that - uses the given strategy chain to construct the build plan. - - The strategy chain. - - - - Construct a build plan. - - The current build context. - The current build key. - The created build plan. - - - - A class that records that a constructor is about to be call, and is - responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Generate the description string. - - The string. - - - - Method we're trying to call. - - - - - This class records the information about which constructor argument is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - The type that is being constructed. - A string representing the method being called. - Parameter being resolved. - - - - Generate the string describing what parameter was being resolved. - - The description string. - - - - String describing the method being set up. - - - - - Parameter that's being resolved. - - - - - A that generates IL to call - chosen methods (as specified by the current ) - as part of object build up. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A base class that holds the information shared by all operations - performed by the container while setting properties. - - - - - Initializes a new instance of the class. - - - - - Generate the description of this operation. - - The string. - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - The property value currently being resolved. - - - - - This class records the information about which property value is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - A that generates IL to resolve properties - on an object being built. - - - - - Called during the chain of responsibility for a build operation. - - The context for the operation. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - This class records the information about which property value is currently - being set, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - Type property is on. - Name of property being set. - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - An that will examine the given - types and return a sequence of objects - that should be called as part of building the object. - - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - An implementation of that selects - methods by looking for the given - attribute on those methods. - - Type of attribute used to mark methods - to inject. - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - Attribute that marks methods that should - be called. - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Objects of this type are the return value from . - It encapsulates the desired with the string keys - needed to look up the for each - parameter. - - - - - Create a new instance which - contains the given method. - - The method - - - - The constructor this object wraps. - - - - - An that returns a sequence - of properties that should be injected for the given type. - - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - An implementation of that looks - for properties marked with the - attribute that are also settable and not indexers. - - - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - Objects of this type are returned from - . - This class combines the about - the property with the string key used to look up the resolver - for this property's value. - - - - - Create an instance of - with the given and key. - - The property. - Key to use to look up the resolver. - - - - PropertyInfo for this property. - - - - - Key to look up this property's resolver. - - - - - Implementation of . - - - - - A builder policy that lets you keep track of the current - resolvers and will remove them from the given policy set. - - - - - Add a new resolver to track by key. - - Key that was used to add the resolver to the policy set. - - - - Remove the currently tracked resolvers from the given policy list. - - Policy list to remove the resolvers from. - - - - Add a new resolver to track by key. - - Key that was used to add the resolver to the policy set. - - - - Remove the currently tracked resolvers from the given policy list. - - Policy list to remove the resolvers from. - - - - Get an instance that implements , - either the current one in the policy set or creating a new one if it doesn't - exist. - - Policy list to look up from. - Build key to track. - The resolver tracker. - - - - Add a key to be tracked to the current tracker. - - Policy list containing the resolvers and trackers. - Build key for the resolvers being tracked. - Key for the resolver. - - - - Remove the resolvers for the given build key. - - Policy list containing the build key. - Build key. - - - - An implementation of that - calls back into the build chain to build up the dependency, passing - a type given at compile time as its build key. - - - - - Create a new instance storing the given type. - - Type to resolve. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - This interface defines a standard method to convert any - regardless - of the stage enum into a regular, flat strategy chain. - - - - - Convert this into - a flat . - - The flattened . - - - - Represents a chain of responsibility for builder strategies. - - - - - Reverse the order of the strategy chain. - - The reversed strategy chain. - - - - Execute this strategy chain against the given context, - calling the Buildup methods on the strategies. - - Context for the build process. - The build up object - - - - Execute this strategy chain against the given context, - calling the TearDown methods on the strategies. - - Context for the teardown process. - - - - A builder policy used to create lifetime policy instances. - Used by the LifetimeStrategy when instantiating open - generic types. - - - - - Create a new instance of . - - The new instance. - - - - The type of Lifetime manager that will be created by this factory. - - - - - An implementation that uses - a to figure out if an object - has already been created and to update or remove that - object from some backing store. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - Represents a chain of responsibility for builder strategies partitioned by stages. - - The stage enumeration to partition the strategies. - - - - Initialize a new instance of the class. - - - - - Initialize a new instance of the class with an inner strategy chain to use when building. - - The inner strategy chain to use first when finding strategies in the build operation. - - - - Adds a strategy to the chain at a particular stage. - - The strategy to add to the chain. - The stage to add the strategy. - - - - Add a new strategy for the . - - The of - The stage to add the strategy. - - - - Clear the current strategy chain list. - - - This will not clear the inner strategy chain if this instane was created with one. - - - - - Makes a strategy chain based on this instance. - - A new . - - - - Represents a chain of responsibility for builder strategies. - - - - - Initialzie a new instance of the class. - - - - - Initialzie a new instance of the class with a colleciton of strategies. - - A collection of strategies to initialize the chain. - - - - Adds a strategy to the chain. - - The strategy to add to the chain. - - - - Adds strategies to the chain. - - The strategies to add to the chain. - - - - Reverse the order of the strategy chain. - - The reversed strategy chain. - - - - Execute this strategy chain against the given context to build up. - - Context for the build processes. - The build up object - - - - Execute this strategy chain against the given context, - calling the TearDown methods on the strategies. - - Context for the teardown process. - - - - Returns an enumerator that iterates through the collection. - - - - A that can be used to iterate through the collection. - - 1 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - Build key used to combine a type object with a string name. Used by - ObjectBuilder to indicate exactly what is being built. - - - - - Create a new instance with the given - type and name. - - to build. - Key to use to look up type mappings and singletons. - - - - Create a new instance for the default - buildup of the given type. - - to build. - - - - This helper method creates a new instance. It is - initialized for the default key for the given type. - - Type to build. - A new instance. - - - - This helper method creates a new instance for - the given type and key. - - Type to build - Key to use to look up type mappings and singletons. - A new instance initialized with the given type and name. - - - - Compare two instances. - - Two instances compare equal - if they contain the same name and the same type. Also, comparing - against a different type will also return false. - Object to compare to. - True if the two keys are equal, false if not. - - - - Calculate a hash code for this instance. - - A hash code. - - - - Compare two instances for equality. - - Two instances compare equal - if they contain the same name and the same type. - First of the two keys to compare. - Second of the two keys to compare. - True if the values of the keys are the same, else false. - - - - Compare two instances for inequality. - - Two instances compare equal - if they contain the same name and the same type. If either field differs - the keys are not equal. - First of the two keys to compare. - Second of the two keys to compare. - false if the values of the keys are the same, else true. - - - - Formats the build key as a string (primarily for debugging). - - A readable string representation of the build key. - - - - Return the stored in this build key. - - The type to build. - - - - Returns the name stored in this build key. - - The name to use when building. - - - - A generic version of so that - you can new up a key using generic syntax. - - Type for the key. - - - - Construct a new that - specifies the given type. - - - - - Construct a new that - specifies the given type and name. - - Name for the key. - - - - A series of helper methods to deal with sequences - - objects that implement . - - - - - A function that turns an arbitrary parameter list into an - . - - Type of arguments. - The items to put into the collection. - An array that contains the values of the . - - - - Given two sequences, return a new sequence containing the corresponding values - from each one. - - Type of first sequence. - Type of second sequence. - First sequence of items. - Second sequence of items. - New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. - - - - The exception thrown by the Unity container when - an attempt to resolve a dependency fails. - - - The exception thrown by the Unity container when - an attempt to resolve a dependency fails. - - - - - Constructor to create a from serialized state. - - Serialization info - Serialization context - - - - Serialize this object into the given context. - - Serialization info - Streaming context - - - - Create a new that records - the exception for the given type and name. - - Type requested from the container. - Name requested from the container. - The actual exception that caused the failure of the build. - The build context representing the failed operation. - - - - The type that was being requested from the container at the time of failure. - - - - - The name that was being requested from the container at the time of failure. - - - - - A that lets you register a - delegate with the container to create an object, rather than calling - the object's constructor. - - - - - Base class for all extension objects. - - - - - The container calls this method when the extension is added. - - A instance that gives the - extension access to the internals of the container. - - - - Initial the container with this extension's functionality. - - - When overridden in a derived class, this method will modify the given - by adding strategies, policies, etc. to - install it's functions into the container. - - - - Removes the extension's functions from the container. - - - - This method is called when extensions are being removed from the container. It can be - used to do things like disconnect event handlers or clean up member state. You do not - need to remove strategies or policies here; the container will do that automatically. - - - The default implementation of this method does nothing. - - - - - The container this extension has been added to. - - The that this extension has been added to. - - - - The object used to manipulate - the inner state of the container. - - - - - Initialize this extension. This particular extension requires no - initialization work. - - - - - Register the given factory delegate to be called when the container is - asked to resolve and . - - Type that will be requested from the container. - The name that will be used when requesting to resolve this type. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - Register the given factory delegate to be called when the container is - asked to resolve . - - Type that will be requested from the container. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - An implementation of that - acts as a decorator over another . - This checks to see if the current type being built is the - right one before checking the inner . - - - - - Create an instance of - - Type to check for. - Inner override to check after type matches. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience version of that lets you - specify the type to construct via generics syntax. - - Type to check for. - - - - Create an instance of . - - Inner override to check after type matches. - - - - Extension class that adds a set of convenience overloads to the - interface. - - - - - Register a type with specific members to be injected. - - Type this registration is for. - Container to configure. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - - This overload registers a default mapping and transient lifetime. - - - that will be requested. - that will actually be returned. - Container to configure. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Container to configure. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - that will be requested. - that will actually be returned. - Container to configure. - Name of this mapping. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Container to configure. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type with the container. - No type mapping is performed for this type. - - The type to apply the to. - Container to configure. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type with the container. - No type mapping is performed for this type. - - The type to configure injection on. - Container to configure. - Name that will be used to request the type. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - The type to apply the to. - Container to configure. - Name that will be used to request the type. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type with specific members to be injected. - - Container to configure. - Type this registration is for. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - - This overload registers a default mapping. - - - Container to configure. - that will be requested. - that will actually be returned. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - Container to configure. - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - Container to configure. - that will be requested. - that will actually be returned. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to apply the to. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to configure in the container. - Name to use for registration, null if a default registration. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to apply the to. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration and has the container take over the lifetime of the instance. - - Type of instance to register (may be an implemented interface instead of the full type). - Container to configure. - Object to returned. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration (name = null). - - - Type of instance to register (may be an implemented interface instead of the full type). - Container to configure. - Object to returned. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload automatically has the container take ownership of the . - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Container to configure. - Name for registration. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Container to configure. - Name for registration. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration and has the container take over the lifetime of the instance. - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration (name = null). - - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload automatically has the container take ownership of the . - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve an instance of the default requested type from the container. - - of object to get from the container. - Container to resolve from. - Any overrides for the resolve call. - The retrieved object. - - - - Resolve an instance of the requested type with the given name from the container. - - of object to get from the container. - Container to resolve from. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Resolve an instance of the default requested type from the container. - - Container to resolve from. - of object to get from the container. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Container to resolve from. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - - This overload uses the default registrations. - - - of object to perform injection on. - Container to resolve through. - Instance to build up. - Any overrides for the buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Conatiner to resolve through. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the Buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - - This overload uses the default registrations. - - - Container to resolve through. - of object to perform injection on. - Instance to build up. - Any overrides for the Buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Creates a new extension object and adds it to the container. - - Type of to add. The extension type - will be resolved from within the supplied . - Container to add the extension to. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - The configuration interface required. - Container to configure. - The requested extension's configuration interface, or null if not found. - - - - Check if a particular type has been registered with the container with - the default name. - - Container to inspect. - Type to check registration for. - True if this type has been registered, false if not. - - - - Check if a particular type/name pair has been registered with the container. - - Container to inspect. - Type to check registration for. - Name to check registration for. - True if this type/name pair has been registered, false if not. - - - - Check if a particular type has been registered with the container with the default name. - - Type to check registration for. - Container to inspect. - True if this type has been registered, false if not. - - - - Check if a particular type/name pair has been registered with the container. - - Type to check registration for. - Container to inspect. - Name to check registration for. - True if this type/name pair has been registered, false if not. - - - - This extension installs the default strategies and policies into the container - to implement the standard behavior of the Unity container. - - - This extension installs the default strategies and policies into the container - to implement the standard behavior of the Unity container. - - - - - Add the correct to the policy - set. This version adds the appropriate policy for running on the desktop CLR. - - - - - Add the default ObjectBuilder strategies & policies to the container. - - - - - The class provides the means for extension objects - to manipulate the internal state of the . - - - - - Store a type/name pair for later resolution. - - - - When users register type mappings (or other things) with a named key, this method - allows you to register that name with the container so that when the - method is called, that name is included in the list that is returned. - - to register. - Name assocated with that type. - - - - The container that this context is associated with. - - The object. - - - - The strategies this container uses. - - The that the container uses to build objects. - - - - The strategies this container uses to construct build plans. - - The that this container uses when creating - build plans. - - - - The policies this container uses. - - The the that container uses to build objects. - - - - The that this container uses. - - The is used to manage objects that the container is managing. - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - This event is raised when the method is called, providing - the newly created child container to extensions to act on as they see fit. - - - - - An EventArgs class that holds a string Name. - - - - - Create a new with a null name. - - - - - Create a new with the given name. - - Name to store. - - - - The name. - - Name used for this event arg object. - - - - Event argument class for the event. - - - - - Create a new instance of . - - Type to map from. - Type to map to. - Name for the registration. - to manage instances. - - - - Type to map from. - - - - - Type to map to. - - - - - to manage instances. - - - - - Event argument class for the event. - - - - - Create a default instance. - - - - - Create a instance initialized with the given arguments. - - Type of instance being registered. - The instance object itself. - Name to register under, null if default registration. - object that handles how - the instance will be owned. - - - - Type of instance being registered. - - - Type of instance being registered. - - - - - Instance object being registered. - - Instance object being registered - - - - that controls ownership of - this instance. - - - - - A that lets you specify that - an instance of a generic type parameter should be resolved. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - A that lets you specify that - an array containing the registered instances of a generic type parameter - should be resolved. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - The values for the elements, that will - be converted to objects. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - A type is considered compatible if it is an array type of rank one - and its element type is a generic type parameter with a name matching this generic - parameter name configured for the receiver. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - A Unity container extension that allows you to configure - which constructors, properties, and methods get injected - via an API rather than through attributes. - - - - - Initial the container with this extension's functionality. - - - When overridden in a derived class, this method will modify the given - by adding strategies, policies, etc. to - install it's functions into the container. - - - - API to configure the injection settings for a particular type. - - Type the injection is being configured for. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type the injection is being configured for. - Name of registration - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type. - - Type to configure. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type to configure. - Name of registration. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type of interface/base class being registered (may be null). - Type of actual implementation class being registered. - Name of registration. - Objects containing the details on which members to inject and how. - This extension object. - - - - A class that holds the collection of information - for a constructor, so that the container can - be configured to call this constructor. - - - - - Create a new instance of that looks - for a constructor with the given set of parameters. - - The values for the parameters, that will - be converted to objects. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Interface registered, ignored in this implementation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - An that configures the - container to call a method as part of buildup. - - - - - Create a new instance which will configure - the container to call the given methods with the given parameters. - - Name of the method to call. - Parameter values for the method. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface registered, ignored in this implementation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - A small function to handle name matching. You can override this - to do things like case insensitive comparisons. - - MethodInfo for the method you're checking. - Name of the method you're looking for. - True if a match, false if not. - - - - A class that holds on to the given value and provides - the required - when the container is configured. - - - - - Create an instance of that stores - the given value, using the runtime type of that value as the - type of the parameter. - - Value to be injected for this parameter. - - - - Create an instance of that stores - the given value, associated with the given type. - - Type of the parameter. - Value of the parameter - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of that makes it a - little easier to specify the type of the parameter. - - Type of parameter. - - - - Create a new . - - Value for the parameter. - - - - This class stores information about which properties to inject, - and will configure the container accordingly. - - - - - Configure the container to inject the given property name, - resolving the value via the container. - - Name of the property to inject. - - - - Configure the container to inject the given property name, - using the value supplied. This value is converted to an - object using the - rules defined by the - method. - - Name of property to inject. - Value for property. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Interface being registered, ignored in this implemenation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - A class that stores a type, and generates a - resolver object that resolves all the named instances or the - type registered in a container. - - - - - Construct a new that - resolves to the given element type and collection of element values. - - The type of elements to resolve. - The values for the elements, that will - be converted to objects. - - - - Construct a new that - resolves to the given array and element types and collection of element values. - - The type for the array of elements to resolve. - The type of elements to resolve. - The values for the elements, that will - be converted to objects. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of for convenience - when creating them by hand. - - Type of the elements for the array of the parameter. - - - - Construct a new that - resolves to the given element generic type with the given element values. - - The values for the elements, that will - be converted to objects. - - - - Interface defining the behavior of the Unity dependency injection container. - - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve an instance of the requested type with the given name from the container. - - of object to get from the container. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the resolve calls. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container, and clean it up. - - The object to tear down. - - - - Add an extension object to the container. - - to add. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - of configuration interface required. - The requested extension's configuration interface, or null if not found. - - - - Remove all installed extensions from this container. - - - - This method removes all extensions from the container, including the default ones - that implement the out-of-the-box behavior. After this method, if you want to use - the container again you will need to either readd the default extensions or replace - them with your own. - - - The registered instances and singletons that have already been set up in this container - do not get removed. - - - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Create a child container. - - - A child container shares the parent's configuration, but can be configured with different - settings or lifetime. - The new child container. - - - - The parent of this container. - - The parent container, or null if this container doesn't have one. - - - - Get a sequence of that describe the current state - of the container. - - - - - A that holds a weak reference to - it's managed instance. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - An implementation of that - creates instances of the type of the given Lifetime Manager - by resolving them through the container. - - - - - Create a new that will - return instances of the given type, creating them by - resolving through the container. - - Container to resolve with. - Type of LifetimeManager to create. - - - - Create a new instance of . - - The new instance. - - - - The type of Lifetime manager that will be created by this factory. - - - - - A that holds the instances given to it, - keeping one instance per thread. - - - - This LifetimeManager does not dispose the instances it holds. - - - - - - Initializes a new instance of the class. - - - - - Retrieve a value from the backing store associated with this Lifetime policy for the - current thread. - - the object desired, or if no such object is currently - stored for the current thread. - - - - Stores the given value into backing store for retrieval later when requested - in the current thread. - - The object being stored. - - - - Remove the given object from backing store. - - Not implemented for this lifetime manager. - - - - An implementation that does nothing, - thus ensuring that instances are created new every time. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - This strategy implements the logic that will call container.ResolveAll - when an array parameter is detected. - - - - - Do the PreBuildUp stage of construction. This is where the actual work is performed. - - Current build context. - - - - An implementation of that is - aware of the build keys used by the Unity container. - - - - - Create a instance for the given - . - - - This implementation looks for the Unity on the - parameter and uses it to create an instance of - for this parameter. - Parameter to create the resolver for. - The resolver object. - - - - An implementation of that is aware - of the build keys used by the Unity container. - - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - An implementation of that is aware of - the build keys used by the unity container. - - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - A implementation that returns - the value set in the constructor. - - - - - Create a new instance of - which will return the given value when resolved. - - The value to return. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - An implementation of that stores a - type and name, and at resolution time puts them together into a - . - - - - - Create an instance of - with the given type and name. - - The type. - The name (may be null). - - - - Resolve the value for a dependency. - - Current build context. - The value for the dependency. - - - - The type that this resolver resolves. - - - - - The name that this resolver resolves. - - - - - An implementation of that resolves to - to an array populated with the values that result from resolving other instances - of . - - - - - Create an instance of - with the given type and a collection of - instances to use when populating the result. - - The type. - The resolver policies to use when populating an array. - - - - Resolve the value for a dependency. - - Current build context. - An array pupulated with the results of resolving the resolver policies. - - - - An implementation of that selects - the given constructor and creates the appropriate resolvers to call it with - the specified parameters. - - - - - Create an instance of that - will return the given constructor, being passed the given injection values - as parameters. - - The constructor to call. - Set of objects - that describes how to obtain the values for the constructor parameters. - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Helper class for implementing selector policies that need to - set up dependency resolver policies. - - - - - Add dependency resolvers to the parameter set. - - Type that's currently being built (used to resolve open generics). - PolicyList to add the resolvers to. - Objects supplying the dependency resolvers. - Result object to store the keys in. - - - - A implementation that calls the specific - methods with the given parameters. - - - - - Add the given method and parameter collection to the list of methods - that will be returned when the selector's - method is called. - - Method to call. - sequence of objects - that describe how to create the method parameter values. - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - An implemnetation of which returns - the set of specific properties that the selector was configured with. - - - - - Add a property that will be par of the set returned when the - is called. - - The property to set. - object describing - how to create the value to inject. - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - A class that stores a name and type, and generates a - resolver object that resolves the parameter via the - container. - - - - - Construct a new that - resolves to the given type. - - Type of this parameter. - - - - Construct a new that - resolves the given type and name. - - Type of this parameter. - Name to use when resolving parameter. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of for convenience - when creating them by hand. - - Type of the parameter - - - - Create a new for the given - generic type and the default name. - - - - - Create a new for the given - generic type and name. - - Name to use to resolve this parameter. - - - - An implementation of that wraps a Unity container. - - - - - Initializes a new instance of the class for a container. - - The to wrap with the - interface implementation. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - When implemented by inheriting classes, this method will do the actual work of resolving - the requested service instance. - - Type of instance requested.Name of registered service you want. May be null. - - The requested service instance. - - - - - When implemented by inheriting classes, this method will do the actual work of - resolving all the requested service instances. - - Type of service requested. - - Sequence of service instance objects. - - - - - A static helper class that includes various parameter checking routines. - - - - - Throws if the given argument is null. - - if tested value if null. - Argument value to test. - Name of the argument being tested. - - - - Throws an exception if the tested string argument is null or the empty string. - - Thrown if string value is null. - Thrown if the string is empty - Argument value to check. - Name of argument being checked. - - - - Verifies that an argument type is assignable from the provided type (meaning - interfaces are implemented, or classes exist in the base class hierarchy). - - The argument type that will be assigned to. - The type of the value being assigned. - Argument name. - - - - Verifies that an argument instance is assignable from the provided type (meaning - interfaces are implemented, or classes exist in the base class hierarchy, or instance can be - assigned through a runtime wrapper, as is the case for COM Objects). - - The argument type that will be assigned to. - The instance that will be assigned. - Argument name. - - - - The build stages we use in the Unity container - strategy pipeline. - - - - - First stage. By default, nothing happens here. - - - - - Second stage. Type mapping occurs here. - - - - - Third stage. lifetime managers are checked here, - and if they're available the rest of the pipeline is skipped. - - - - - Fourth stage. Reflection over constructors, properties, etc. is - performed here. - - - - - Fifth stage. Instance creation happens here. - - - - - Sixth stage. Property sets and method injection happens here. - - - - - Seventh and final stage. By default, nothing happens here. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. - - - - - Looks up a localized string similar to The provided string argument must not be empty.. - - - - - Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). - - - - - Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. - - - - - Looks up a localized string similar to Cannot extract type from build key {0}.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. - - - - - Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. - - - - - Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. - - - - - Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. - - - - - Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. - - - - - Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. - - - - - Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. - - - - - Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. - - - - - Looks up a localized string similar to Calling constructor {0}. - - - - - Looks up a localized string similar to Calling method {0}.{1}. - - - - - Looks up a localized string similar to An item with the given key is already present in the dictionary.. - - - - - Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. - - - - - Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. - - - - - Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. - - - - - Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . - - - - - Looks up a localized string similar to Could not resolve dependency for build key {0}.. - - - - - Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. - - - - - Looks up a localized string similar to The supplied type {0} must be an open generic type.. - - - - - Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. - - - - - Looks up a localized string similar to The type {0} does not have an accessible constructor.. - - - - - Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". - - - - - Looks up a localized string similar to while resolving. - - - - - Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. - - - - - Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. - - - - - Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. - - - - - Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. - - - - - Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. - - - - - Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. - - - - - Looks up a localized string similar to The property {0} on type {1} is not settable.. - - - - - Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. - - - - - Looks up a localized string similar to The value for the property "{0}" could not be resolved.. - - - - - Looks up a localized string similar to The provided string argument must not be empty.. - - - - - Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". - Exception occurred while: {2}. - Exception is: {3} - {4} - ----------------------------------------------- - At the time of the exception, the container was: - . - - - - - Looks up a localized string similar to Resolving {0},{1}. - - - - - Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). - - - - - Looks up a localized string similar to Resolving value for property {0}.{1}. - - - - - Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. - - - - - Looks up a localized string similar to Setting value for property {0}.{1}. - - - - - Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. - - - - - Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. - - - - - Looks up a localized string similar to <unknown>. - - - - - A simple, extensible dependency injection container. - - - - - Create a default . - - - - - Create a with the given parent container. - - The parent . The current object - will apply its own settings first, and then check the parent for additional ones. - - - - RegisterType a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - RegisterType an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - - If true, the container will take over the lifetime of the instance, - calling Dispose on it (if it's ) when the container is Disposed. - - If false, container will not maintain a strong reference to . User is reponsible - for disposing instance, and for keeping the instance from being garbage collected. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Get an instance of the requested type with the given name from the container. - - of object to get from the container. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container, and clean it up. - - The object to tear down. - - - - Add an extension object to the container. - - to add. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Get access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - of configuration interface required. - The requested extension's configuration interface, or null if not found. - - - - Remove all installed extensions from this container. - - - - This method removes all extensions from the container, including the default ones - that implement the out-of-the-box behavior. After this method, if you want to use - the container again you will need to either readd the default extensions or replace - them with your own. - - - The registered instances and singletons that have already been set up in this container - do not get removed. - - - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Create a child container. - - - A child container shares the parent's configuration, but can be configured with different - settings or lifetime. - The new child container. - - - - Dispose this container instance. - - - Disposing the container also disposes any child containers, - and disposes any instances whose lifetimes are managed - by the container. - - - - - Dispose this container instance. - - - This class doesn't have a finalizer, so will always be true. - True if being called from the IDisposable.Dispose - method, false if being called from a finalizer. - - - - Remove policies associated with building this type. This removes the - compiled build plan so that it can be rebuilt with the new settings - the next time this type is resolved. - - Type of object to clear the plan for. - Name the object is being registered with. - - - - The parent of this container. - - The parent container, or null if this container doesn't have one. - - - - Get a sequence of that describe the current state - of the container. - - - - - Implementation of the ExtensionContext that is actually used - by the UnityContainer implementation. - - - This is a nested class so that it can access state in the - container that would otherwise be inaccessible. - - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - This extension supplies the default behavior of the UnityContainer API - by handling the context events and setting policies. - - - - - Install the default container behavior into the container. - - - - - Remove the default behavior from the container. - - - - - Helper class to wrap common reflection stuff dealing with - methods. - - - - - Create a new instance that - lets us do more reflection stuff on that method. - - The method to reflect on. - - - - Given our set of generic type arguments, - - The generic type arguments. - An array with closed parameter types. - - - - Returns true if any of the parameters of this method - are open generics. - - - - - Return the of each parameter for this - method. - - Sequence of objects, one for - each parameter in order. - - - - A helper class that encapsulates two different - data items together into a a single item. - - - - - Create a new containing - the two values give. - - First value - Second value - - - - The first value of the pair. - - - - - The second value of the pair. - - - - - Container for a Pair helper method. - - - - - A helper factory method that lets users take advantage of type inference. - - Type of first value. - Type of second value. - First value. - Second value. - A new instance. - - - - A utility class that handles the logic of matching parameter - lists, so we can find the right constructor and method overloads. - - - - - Create a new that will attempt to - match the given parameter types. - - Target parameters to match against. - - - - Tests to see if the given set of types matches the ones - we're looking for. - - parameter list to look for. - true if they match, false if they don't. - - - - Tests to see if the given set of types matches the ones we're looking for. - - Candidate method signature to look for. - True if they match, false if they don't. - - - - Another reflection helper class that has extra methods - for dealing with ParameterInfos. - - - - - A small helper class to encapsulate details of the - reflection API, particularly around generics. - - - - - Create a new instance that - lets you look at information about the given type. - - Type to do reflection on. - - - - Test the given object, looking at - the parameters. Determine if any of the parameters are - open generic types that need type attributes filled in. - - The method to check. - True if any of the parameters are open generics. False if not. - - - - If this type is an open generic, use the - given array to - determine what the required closed type is and return that. - - If the parameter is not an open type, just - return this parameter's type. - Type arguments to substitute in for - the open type parameters. - Corresponding closed type of this parameter. - - - - Given a generic argument name, return the corresponding type for this - closed type. For example, if the current type is SomeType<User>, and the - corresponding definition was SomeType<TSomething>, calling this method - and passing "TSomething" will return typeof(User). - - Name of the generic parameter. - Type of the corresponding generic parameter, or null if there - is no matching name. - - - - The object we're reflecting over. - - - - - Is this type generic? - - - - - Is this type an open generic (no type parameter specified) - - - - - Is this type an array type? - - - - - Is this type an array of generic elements? - - - - - The type of the elements in this type (if it's an array). - - - - - Create a new instance of that - lets you query information about the given ParameterInfo object. - - Parameter to query. - - - - A set of helper methods to pick through lambdas and pull out - from them. - - - - - Pull out a object from an expression of the form - () => SomeClass.SomeMethod() - - Expression describing the method to call. - Corresponding . - - - - Pull out a object from an expression of the form - x => x.SomeMethod() - - The type where the method is defined. - Expression describing the method to call. - Corresponding . - - - - Pull out a object for the get method from an expression of the form - x => x.SomeProperty - - The type where the method is defined. - The type for the property. - Expression describing the property for which the get method is to be extracted. - Corresponding . - - - - Pull out a object for the set method from an expression of the form - x => x.SomeProperty - - The type where the method is defined. - The type for the property. - Expression describing the property for which the set method is to be extracted. - Corresponding . - - - - Pull out a object from an expression of the form () => new SomeType() - - The type where the constructor is defined. - Expression invoking the desired constructor. - Corresponding . - - - + + + + Microsoft.Practices.Unity + + + + + Provides access to the names registered for a container. + + + + + Represents a builder policy interface. Since there are no fixed requirements + for policies, it acts as a marker interface from which to derive all other + policy interfaces. + + + + + Gets the names registered for a type. + + The type. + The names registered for . + + + + An implementation + that constructs a build plan for creating objects. + + + + + A that can create and return an + for the given build key. + + + + + Create a build plan using the given context and build key. + + Current build context. + Current build key. + The build plan. + + + + Creates a build plan using the given context and build key. + + Current build context. + Current build key. + + The build plan. + + + + + Provides extension methods to the class due to the introduction + of class in the .NET for Windows Store apps. + + + + + Returns the constructor in that matches the specified constructor parameter types. + + The type to inspect + The constructor parameter types. + The constructor that matches the specified parameter types. + + + + Returns the non-static declared methods of a type or its base types. + + The type to inspect + An enumerable of the objects. + + + + Returns the non-static method of a type or its based type. + + The type to inspect + The name of the method to seek. + The (closed) parameter type signature of the method. + The discovered + + + + Returns the declared properties of a type or its base types. + + The type to inspect + An enumerable of the objects. + + + + Determines if the types in a parameter set ordinally matches the set of supplied types. + + + + + + + + Base class for attributes that can be placed on parameters + or properties to specify how to resolve the value for + that parameter or property. + + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + This attribute is used to indicate which constructor to choose when + the container attempts to build a type. + + + + + This attribute is used to mark methods that should be called when + the container is building an object. + + + + + This attribute is used to mark properties and parameters as targets for injection. + + + For properties, this attribute is necessary for injection to happen. For parameters, + it's not needed unless you want to specify additional information to control how + the parameter is resolved. + + + + + Create an instance of with no name. + + + + + Create an instance of with the given name. + + Name to use when resolving this dependency. + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + The name specified in the constructor. + + + + + An used to mark a dependency + as optional - the container will try to resolve it, and return null + if the resolution fails rather than throw. + + + + + Construct a new object. + + + + + Construct a new object that + specifies a named dependency. + + Name of the dependency. + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + Name of the dependency. + + + + + A that composites other + ResolverOverride objects. The GetResolver operation then + returns the resolver from the first child override that + matches the current context and request. + + + + + Base class for all override objects passed in the + method. + + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Wrap this resolver in one that verifies the type of the object being built. + This allows you to narrow any override down to a specific type easily. + + Type to constrain the override to. + The new override. + + + + Wrap this resolver in one that verifies the type of the object being built. + This allows you to narrow any override down to a specific type easily. + + Type to constrain the override to. + The new override. + + + + Add a new to the collection + that is checked. + + item to add. + + + + Add a set of s to the collection. + + items to add. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Class that returns information about the types registered in a container. + + + + + The type that was passed to the method + as the "from" type, or the only type if type mapping wasn't done. + + + + + The type that this registration is mapped to. If no type mapping was done, the + property and this one will have the same value. + + + + + Name the type was registered under. Null for default registration. + + + + + The registered lifetime manager instance. + + + + + The lifetime manager for this registration. + + + This property will be null if this registration is for an open generic. + + + + A class that overrides + the value injected whenever there is a dependency of the + given type, regardless of where it appears in the object graph. + + + + + Create an instance of to override + the given type with the given value. + + Type of the dependency. + Value to use. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience version of that lets you + specify the dependency type using generic syntax. + + Type of the dependency to override. + + + + Construct a new object that will + override the given dependency, and pass the given value. + + + + + A convenience form of that lets you + specify multiple parameter overrides in one shot rather than having + to construct multiple objects. + + + This class isn't really a collection, it just implements IEnumerable + so that we get use of the nice C# collection initializer syntax. + + + + + Base helper class for creating collections of objects + for use in passing a bunch of them to the resolve call. This base class provides + the mechanics needed to allow you to use the C# collection initializer syntax. + + Concrete type of the this class collects. + Key used to create the underlying override object. + Value that the override returns. + + + + Add a new override to the collection with the given key and value. + + Key - for example, a parameter or property name. + Value - the value to be returned by the override. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + Event argument class for the event. + + + + + Construct a new object with the + given child container object. + + An for the newly created child + container. + + + + The newly created child container. + + + + + An extension context for the created child container. + + + + + Base class for subclasses that let you specify that + an instance of a generic type parameter should be resolved. + + + + + Base type for objects that are used to configure parameters for + constructor or method injection, or for getting the value to + be injected into a property. + + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Convert the given set of arbitrary values to a sequence of InjectionParameterValue + objects. The rules are: If it's already an InjectionParameterValue, return it. If + it's a Type, return a ResolvedParameter object for that type. Otherwise return + an InjectionParameter object for that value. + + The values to build the sequence from. + The resulting converted sequence. + + + + Convert an arbitrary value to an InjectionParameterValue object. The rules are: + If it's already an InjectionParameterValue, return it. If it's a Type, return a + ResolvedParameter object for that type. Otherwise return an InjectionParameter + object for that value. + + The value to convert. + The resulting . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + A that lets you specify that + an instance of a generic type parameter should be resolved, providing the + value if resolving fails. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + A class that lets you specify a factory method the container + will use to create the object. + + This is a significantly easier way to do the same + thing the old static factory extension was used for. + + + + Base class for objects that can be used to configure what + class members get injected by the container. + + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type to register. + Policy list to add policies to. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface being registered. If no interface, + this will be null. + Type of concrete type being registered. + Name used to resolve the type object. + Policy list to add policies to. + + + + Create a new instance of with + the given factory function. + + Factory function. + + + + Create a new instance of with + the given factory function. + + Factory function. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface being registered. If no interface, + this will be null. This parameter is ignored in this implementation. + Type of concrete type being registered. + Name used to resolve the type object. + Policy list to add policies to. + + + + A that can be passed to + to configure a + parameter or property as an optional dependency. + + + + + A base class for implementing classes + that deal in explicit types. + + + + + Create a new that exposes + information about the given . + + Type of the parameter. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + The type of parameter this object represents. + + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + Construct a new object that + specifies the given . + + Type of the dependency. + + + + Construct a new object that + specifies the given and . + + Type of the dependency. + Name for the dependency. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of that lets you + specify the type of the dependency using generics syntax. + + Type of the dependency. + + + + Construct a new . + + + + + Construct a new with the given + . + + Name of the dependency. + + + + A special lifetime manager which works like , + except that in the presence of child containers, each child gets it's own instance + of the object, instead of sharing one in the common parent. + + + + + A that holds onto the instance given to it. + When the is disposed, + the instance is disposed with it. + + + + + Base class for Lifetime managers which need to synchronize calls to + . + + + + The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. + + + Calls to the method of a + instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released + when such an initialization takes place by calling the method or if + the build request which resulted in the call to the GetValue method fails. + + + + + + + Base class for Lifetime managers - classes that control how + and when instances are created by the Unity container. + + + + + A that controls how instances are + persisted and recovered from an external store. Used to implement + things like singletons and per-http-request lifetime. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object to store. + + + + Remove the value this lifetime policy is managing from backing store. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + This interface provides a hook for the builder context to + implement error recovery when a builder strategy throws + an exception. Since we can't get try/finally blocks onto + the call stack for later stages in the chain, we instead + add these objects to the context. If there's an exception, + all the current IRequiresRecovery instances will have + their Recover methods called. + + + + + A method that does whatever is needed to clean up + as part of cleaning up after an exception. + + + Don't do anything that could throw in this method, + it will cause later recover operations to get skipped + and play real havoc with the stack trace. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + Calls to this method acquire a lock which is released only if a non-null value + has been set for the lifetime manager. + + + + Performs the actual retrieval of a value from the backing store associated + with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + This method is invoked by + after it has acquired its lock. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + Setting a value will attempt to release the lock acquired by + . + + + + Performs the actual storage of the given value into backing store for retrieval later. + + The object being stored. + This method is invoked by + before releasing its lock. + + + + Remove the given object from backing store. + + + + + A method that does whatever is needed to clean up + as part of cleaning up after an exception. + + + Don't do anything that could throw in this method, + it will cause later recover operations to get skipped + and play real havoc with the stack trace. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. + + Always true, since we don't have a finalizer. + + + + This is a custom lifetime manager that acts like , + but also provides a signal to the default build plan, marking the type so that + instances are reused across the build up object graph. + + + + + Construct a new object that does not + itself manage an instance. + + + + + Construct a new object that stores the + give value. This value will be returned by + but is not stored in the lifetime manager, nor is the value disposed. + This Lifetime manager is intended only for internal use, which is why the + normal method is not used here. + + Value to store. + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. In this class, + this is a noop, since it has special hooks down in the guts. + + The object being stored. + + + + Remove the given object from backing store. Noop in this class. + + + + + A strategy that handles Hierarchical lifetimes across a set of parent/child + containers. + + + + + Represents a strategy in the chain of responsibility. + Strategies are required to support both BuildUp and TearDown. + + + + + Represents a strategy in the chain of responsibility. + Strategies are required to support both BuildUp and TearDown. Although you + can implement this interface directly, you may also choose to use + as the base class for your strategies, as + this class provides useful helper methods and makes support BuildUp and TearDown + optional. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a teardown operation. The + PostTearDown method is called when the chain has finished the PreTearDown + phase and executes in reverse order from the PreTearDown calls. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a teardown operation. The + PostTearDown method is called when the chain has finished the PreTearDown + phase and executes in reverse order from the PreTearDown calls. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + A that will attempt to + resolve a value, and return null if it cannot rather than throwing. + + + + + A strategy that is used at build plan execution time + to resolve a dependent value. + + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + Construct a new object + that will attempt to resolve the given name and type from the container. + + Type to resolve. Must be a reference type. + Name to resolve with. + + + + Construct a new object + that will attempt to resolve the given type from the container. + + Type to resolve. Must be a reference type. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + Type this resolver will resolve. + + + + + Name this resolver will resolve. + + + + + Extension methods on to provide convenience + overloads (generic versions, mostly). + + + + + Removes an individual policy type for a build key. + + The type the policy was registered as. + to remove the policy from. + The key the policy applies. + + + + Removes a default policy. + + The type the policy was registered as. + to remove the policy from. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Sets an individual policy. + + The interface the policy is registered under. + to add the policy to. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + to add the policy to. + The default policy to be registered. + + + + Base class for the current operation stored in the build context. + + + + + Create a new . + + Type currently being built. + + + + The type that's currently being built. + + + + + Build plan for that will return a Func that will resolve the requested type + through this container later. + + + + + A build plan is an object that, when invoked, will create a new object + or fill in a given existing one. It encapsulates all the information + gathered by the strategies to construct a particular object. + + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + The almost inevitable collection of extra helper methods on + to augment the rich set of what + LINQ already gives us. + + + + + Execute the provided on every item in . + + Type of the items stored in + Sequence of items to process. + Code to run over each item. + + + + Create a single string from a sequence of items, separated by the provided , + and with the conversion to string done by the given . + + This method does basically the same thing as , + but will work on any sequence of items, not just arrays. + Type of items in the sequence. + Sequence of items to convert. + Separator to place between the items in the string. + The conversion function to change TItem -> string. + The resulting string. + + + + Create a single string from a sequence of items, separated by the provided , + and with the conversion to string done by the item's method. + + This method does basically the same thing as , + but will work on any sequence of items, not just arrays. + Type of items in the sequence. + Sequence of items to convert. + Separator to place between the items in the string. + The resulting string. + + + + A class that lets you + override a named parameter passed to a constructor. + + + + + Construct a new object that will + override the given named constructor parameter, and pass the given + value. + + Name of the constructor parameter. + Value to pass for the constructor. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience form of that lets you + specify multiple parameter overrides in one shot rather than having + to construct multiple objects. + + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + A that lets you override + the value for a specified property. + + + + + Create an instance of . + + The property name. + Value to use for the property. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience form of that lets you + specify multiple property overrides in one shot rather than having + to construct multiple objects. + + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + Interface defining the configuration interface exposed by the + Static Factory extension. + + + + + Base interface for all extension configuration interfaces. + + + + + Retrieve the container instance that we are currently configuring. + + + + + Register the given factory delegate to be called when the container is + asked to resolve . + + Type that will be requested from the container. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Register the given factory delegate to be called when the container is + asked to resolve and . + + Type that will be requested from the container. + The name that will be used when requesting to resolve this type. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Represents the context in which a build-up or tear-down operation runs. + + + + + Represents the context in which a build-up or tear-down operation runs. + + + + + Add a new set of resolver override objects to the current build operation. + + objects to add. + + + + Get a object for the given + or null if that dependency hasn't been overridden. + + Type of the dependency. + Resolver to use, or null if no override matches for the current operation. + + + + A convenience method to do a new buildup operation on an existing context. + + Key to use to build up. + Created object. + + + + A convenience method to do a new buildup operation on an existing context. This + overload allows you to specify extra policies which will be in effect for the duration + of the build. + + Key defining what to build up. + A delegate that takes a . This + is invoked with the new child context before the build up process starts. This gives callers + the opportunity to customize the context for the build process. + Created object. + + + + Gets the head of the strategy chain. + + + The strategy that's first in the chain; returns null if there are no + strategies in the chain. + + + + + Gets the associated with the build. + + + The associated with the build. + + + + + Gets the original build key for the build operation. + + + The original build key for the build operation. + + + + + Get the current build key for the current build operation. + + + + + The set of policies that were passed into this context. + + This returns the policies passed into the context. + Policies added here will remain after buildup completes. + The persistent policies for the current context. + + + + Gets the policies for the current context. + + Any policies added to this object are transient + and will be erased at the end of the buildup. + + The policies for the current context. + + + + + Gets the collection of objects + that need to execute in event of an exception. + + + + + The current object being built up or torn down. + + + The current object being manipulated by the build operation. May + be null if the object hasn't been created yet. + + + + Flag indicating if the build operation should continue. + + true means that building should not call any more + strategies, false means continue to the next strategy. + + + + An object representing what is currently being done in the + build chain. Used to report back errors if there's a failure. + + + + + The build context used to resolve a dependency during the build operation represented by this context. + + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with a , + , and the + build key used to start this build operation. + + The to use for this context. + The to use for this context. + The to use for this context. + Build key to start building. + The existing object to build up. + + + + Create a new using the explicitly provided + values. + + The to use for this context. + The to use for this context. + The set of persistent policies to use for this context. + The set of transient policies to use for this context. It is + the caller's responsibility to ensure that the transient and persistent policies are properly + combined. + Build key for this context. + Existing object to build up. + + + + Create a new using the explicitly provided + values. + + The to use for this context. + The to use for this context. + The set of persistent policies to use for this context. + The set of transient policies to use for this context. It is + the caller's responsibility to ensure that the transient and persistent policies are properly + combined. + Build key for this context. + The resolver overrides. + + + + Add a new set of resolver override objects to the current build operation. + + objects to add. + + + + Get a object for the given + or null if that dependency hasn't been overridden. + + Type of the dependency. + Resolver to use, or null if no override matches for the current operation. + + + + A convenience method to do a new buildup operation on an existing context. + + Key to use to build up. + Created object. + + + + A convenience method to do a new buildup operation on an existing context. This + overload allows you to specify extra policies which will be in effect for the duration + of the build. + + Key defining what to build up. + A delegate that takes a . This + is invoked with the new child context before the build up process starts. This gives callers + the opportunity to customize the context for the build process. + Created object. + + + + Gets the head of the strategy chain. + + + The strategy that's first in the chain; returns null if there are no + strategies in the chain. + + + + + Get the current build key for the current build operation. + + + + + The current object being built up or torn down. + + + The current object being manipulated by the build operation. May + be null if the object hasn't been created yet. + + + + Gets the associated with the build. + + + The associated with the build. + + + + + Gets the original build key for the build operation. + + + The original build key for the build operation. + + + + + The set of policies that were passed into this context. + + This returns the policies passed into the context. + Policies added here will remain after buildup completes. + The persistent policies for the current context. + + + + Gets the policies for the current context. + + + Any modifications will be transient (meaning, they will be forgotten when + the outer BuildUp for this context is finished executing). + + + The policies for the current context. + + + + + Gets the collection of objects + that need to execute in event of an exception. + + + + + Flag indicating if the build operation should continue. + + true means that building should not call any more + strategies, false means continue to the next strategy. + + + + An object representing what is currently being done in the + build chain. Used to report back errors if there's a failure. + + + + + The build context used to resolve a dependency during the build operation represented by this context. + + + + + Represents that a dependency could not be resolved. + + + + + Initializes a new instance of the class with no extra information. + + + + + Initializes a new instance of the class with the given message. + + Some random message. + + + + Initialize a new instance of the class with the given + message and inner exception. + + Some random message + Inner exception. + + + + Initializes a new instance of the class with the build key of the object begin built. + + The build key of the object begin built. + + + + The exception thrown when injection is attempted on a method + that is an open generic or has out or ref params. + + + + + Construct a new with no + message. + + + + + Construct a with the given message + + Message to return. + + + + Construct a with the given message + and inner exception. + + Message to return. + Inner exception + + + + Extension methods to provide convenience overloads over the + interface. + + + + + Start a recursive build up operation to retrieve the default + value for the given type. + + Type of object to build. + Parent context. + Resulting object. + + + + Start a recursive build up operation to retrieve the named + implementation for the given type. + + Type to resolve. + Parent context. + Name to resolve with. + The resulting object. + + + + Add a set of s to the context, specified as a + variable argument list. + + Context to add overrides to. + The overrides. + + + + Data structure that stores the set of + objects and executes them when requested. + + + + + Add a new object to this + list. + + Object to add. + + + + Execute the method + of everything in the recovery list. Recoveries will execute + in the opposite order of add - it's a stack. + + + + + Return the number of recovery objects currently in the stack. + + + + + Represents a lifetime container. + + + A lifetime container tracks the lifetime of an object, and implements + IDisposable. When the container is disposed, any objects in the + container which implement IDisposable are also disposed. + + + + + Adds an object to the lifetime container. + + The item to be added to the lifetime container. + + + + Determine if a given object is in the lifetime container. + + + The item to locate in the lifetime container. + + + Returns true if the object is contained in the lifetime + container; returns false otherwise. + + + + + Removes an item from the lifetime container. The item is + not disposed. + + The item to be removed. + + + + Gets the number of references in the lifetime container + + + The number of references in the lifetime container + + + + + Represents a lifetime container. + + + A lifetime container tracks the lifetime of an object, and implements + IDisposable. When the container is disposed, any objects in the + container which implement IDisposable are also disposed. + + + + + Adds an object to the lifetime container. + + The item to be added to the lifetime container. + + + + Determine if a given object is in the lifetime container. + + + The item to locate in the lifetime container. + + + Returns true if the object is contained in the lifetime + container; returns false otherwise. + + + + + Releases the resources used by the . + + + + + Releases the resources used by the . + + + true to release managed and unmanaged resources; false to release only unmanaged resources. + + + + + Returns an enumerator that iterates through the lifetime container. + + + An object that can be used to iterate through the life time container. + + + + + Returns an enumerator that iterates through the lifetime container. + + + An object that can be used to iterate through the life time container. + + + + + Removes an item from the lifetime container. The item is + not disposed. + + The item to be removed. + + + + Gets the number of references in the lifetime container + + + The number of references in the lifetime container + + + + + A custom collection over objects. + + + + + Removes an individual policy type for a build key. + + The type of policy to remove. + The key the policy applies. + + + + Removes all policies from the list. + + + + + Removes a default policy. + + The type the policy was registered as. + + + + Gets an individual policy. + + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + The key the policy applies to. + True if the search should be in the local policy list only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list if present; returns null otherwise. + + + + Sets an individual policy. + + The of the policy. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + The default policy to be registered. + + + + A custom collection wrapper over objects. + + + + + Initialize a new instance of a class. + + + + + Initialize a new instance of a class with another policy list. + + An inner policy list to search. + + + + Removes an individual policy type for a build key. + + The type of policy to remove. + The key the policy applies. + + + + Removes all policies from the list. + + + + + Removes a default policy. + + The type the policy was registered as. + + + + Gets an individual policy. + + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + The key the policy applies to. + True if the search should be in the local policy list only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list if present; returns null otherwise. + + + + Sets an individual policy. + + The of the policy. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + The default policy to be registered. + + + + Gets the number of items in the locator. + + + The number of items in the locator. + + + + + An implementation of . + + + + + Add a new object to this + list. + + Object to add. + + + + Execute the method + of everything in the recovery list. Recoveries will execute + in the opposite order of add - it's a stack. + + + + + Return the number of recovery objects currently in the stack. + + + + + Implementation of which will notify an object about + the completion of a BuildUp operation, or start of a TearDown operation. + + + This strategy checks the object that is passing through the builder chain to see if it + implements IBuilderAware and if it does, it will call + and . This strategy is meant to be used from the + stage. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Implemented on a class when it wants to receive notifications + about the build process. + + + + + Called by the when the object is being built up. + + The key of the object that was just built up. + + + + Called by the when the object is being torn down. + + + + + Enumeration to represent the object builder stages. + + + The order of the values in the enumeration is the order in which the stages are run. + + + + + Strategies in this stage run before creation. Typical work done in this stage might + include strategies that use reflection to set policies into the context that other + strategies would later use. + + + + + Strategies in this stage create objects. Typically you will only have a single policy-driven + creation strategy in this stage. + + + + + Strategies in this stage work on created objects. Typical work done in this stage might + include setter injection and method calls. + + + + + Strategies in this stage work on objects that are already initialized. Typical work done in + this stage might include looking to see if the object implements some notification interface + to discover when its initialization stage has been completed. + + + + + Represents a builder policy for mapping build keys. + + + + + Represents a builder policy for mapping build keys. + + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping. This parameter can be null + (called when getting container registrations). + The new build key. + + + + Initialize a new instance of the with the new build key. + + The new build key. + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping, unused in this implementation. + The new build key. + + + + Represents a strategy for mapping build keys in the build up operation. + + + + + Called during the chain of responsibility for a build operation. Looks for the + and if found maps the build key for the current operation. + + The context for the operation. + + + + An implementation of that can map + generic types. + + + + + Create a new instance + that will map generic types. + + Build key to map to. This must be or contain an open generic type. + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping. + The new build key. + + + + A that will look for a build plan + in the current context. If it exists, it invokes it, otherwise + it creates one and stores it for later, and invokes it. + + + + + Called during the chain of responsibility for a build operation. + + The context for the operation. + + + + An implementation of that chooses + constructors based on these criteria: first, pick a constructor marked with the + attribute. If there + isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, + then throw. + + Thrown when the constructor to choose is ambiguous. + Attribute used to mark the constructor to call. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + + + + A that, when implemented, + will determine which constructor to call from the build plan. + + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + The second object to compare. + The first object to compare. + + Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. + + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Objects of this type are the return value from . + It encapsulates the desired with the string keys + needed to look up the for each + parameter. + + + + + Base class for return values from selector policies that + return a MemberInfo of some sort plus a list of parameter + keys to look up the parameter resolvers. + + + + + Base class for return of selector policies that need + to keep track of a set of parameter resolvers. + + + + + Adds the parameter resolver. Resolvers are assumed + to be in the order of the parameters to the member. + + The new resolver. + + + + Gets the parameter resolvers. + + An array with the parameter resolvers. + + + + Construct a new , storing + the given member info. + + Member info to store. + + + + The member info stored. + + + + + Create a new instance which + contains the given constructor. + + The constructor to wrap. + + + + The constructor this object wraps. + + + + + This class records the information about which constructor argument is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + The type that is being constructed. + A string representing the constructor being called. + Parameter being resolved. + + + + Generate the string describing what parameter was being resolved. + + The description string. + + + + String describing the constructor being set up. + + + + + Parameter that's being resolved. + + + + + A that emits IL to call constructors + as part of creating a build plan. + + + + + Called during the chain of responsibility for a build operation. + + Existing object is an instance of . + The context for the operation. + + + + A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager + if the current object is such. + + Current build context. + + + + Build up the string that will represent the constructor signature + in any exception message. + + + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an interface (usually due to the lack of a type mapping). + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an abstract class (usually due to the lack of a type mapping). + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an delegate other than Func{T} or Func{IEnumerable{T}}. + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + a dependency cannot be resolved. + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + a dependency cannot be resolved because of an invalid constructor. + + The currently being + used for the build of this object. + The signature of the invalid constructor. + + + + A class that records that a constructor is about to be call, and is + responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Generate the description string. + + The string. + + + + Constructor we're trying to call. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Helper method used by generated IL to look up a dependency resolver based on the given key. + + Current build context. + Type of the dependency being resolved. + Key the resolver was stored under. + The found dependency resolver. + + + + Helper method used by generated IL to look up a dependency resolver based on the given key. + + Current build context. + Type of the dependency being resolved. + The configured resolver. + The found dependency resolver. + + + + The type that is to be built with the dynamic build plan. + + + + + The context parameter representing the used when the build plan is executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + An implementation + that constructs a build plan via dynamic IL emission. + + + + + Construct a that + uses the given strategy chain to construct the build plan. + + The strategy chain. + + + + Construct a build plan. + + The current build context. + The current build key. + The created build plan. + + + + A class that records that a constructor is about to be call, and is + responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Generate the description string. + + The string. + + + + Method we're trying to call. + + + + + This class records the information about which constructor argument is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + The type that is being constructed. + A string representing the method being called. + Parameter being resolved. + + + + Generate the string describing what parameter was being resolved. + + The description string. + + + + String describing the method being set up. + + + + + Parameter that's being resolved. + + + + + A that generates IL to call + chosen methods (as specified by the current ) + as part of object build up. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A base class that holds the information shared by all operations + performed by the container while setting properties. + + + + + Initializes a new instance of the class. + + + + + Generate the description of this operation. + + The string. + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + The property value currently being resolved. + + + + + This class records the information about which property value is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + A that generates IL to resolve properties + on an object being built. + + + + + Called during the chain of responsibility for a build operation. + + The context for the operation. + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + This class records the information about which property value is currently + being set, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + Type property is on. + Name of property being set. + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + An that will examine the given + types and return a sequence of objects + that should be called as part of building the object. + + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + An implementation of that selects + methods by looking for the given + attribute on those methods. + + Type of attribute used to mark methods + to inject. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + Attribute that marks methods that should + be called. + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Objects of this type are the return value from . + It encapsulates the desired with the string keys + needed to look up the for each + parameter. + + + + + Create a new instance which + contains the given method. + + The method + + + + The constructor this object wraps. + + + + + An that returns a sequence + of properties that should be injected for the given type. + + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + An implementation of that looks + for properties marked with the + attribute that are also settable and not indexers. + + + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + Objects of this type are returned from + . + This class combines the about + the property with the string key used to look up the resolver + for this property's value. + + + + + Create an instance of + with the given and key. + + The property. + + + + + PropertyInfo for this property. + + + + + IDependencyResolverPolicy for this property + + + + + Implementation of . + + + + + A builder policy that lets you keep track of the current + resolvers and will remove them from the given policy set. + + + + + Add a new resolver to track by key. + + Key that was used to add the resolver to the policy set. + + + + Remove the currently tracked resolvers from the given policy list. + + Policy list to remove the resolvers from. + + + + Add a new resolver to track by key. + + Key that was used to add the resolver to the policy set. + + + + Remove the currently tracked resolvers from the given policy list. + + Policy list to remove the resolvers from. + + + + Get an instance that implements , + either the current one in the policy set or creating a new one if it doesn't + exist. + + Policy list to look up from. + Build key to track. + The resolver tracker. + + + + Add a key to be tracked to the current tracker. + + Policy list containing the resolvers and trackers. + Build key for the resolvers being tracked. + Key for the resolver. + + + + Remove the resolvers for the given build key. + + Policy list containing the build key. + Build key. + + + + An implementation of that + calls back into the build chain to build up the dependency, passing + a type given at compile time as its build key. + + + + + Create a new instance storing the given type. + + Type to resolve. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + This interface defines a standard method to convert any regardless + of the stage enum into a regular, flat strategy chain. + + + + + Convert this into + a flat . + + The flattened . + + + + Represents a chain of responsibility for builder strategies. + + + + + Reverse the order of the strategy chain. + + The reversed strategy chain. + + + + Execute this strategy chain against the given context, + calling the Buildup methods on the strategies. + + Context for the build process. + The build up object + + + + Execute this strategy chain against the given context, + calling the TearDown methods on the strategies. + + Context for the teardown process. + + + + A builder policy used to create lifetime policy instances. + Used by the LifetimeStrategy when instantiating open + generic types. + + + + + Create a new instance of . + + The new instance. + + + + The type of Lifetime manager that will be created by this factory. + + + + + An implementation that uses + a to figure out if an object + has already been created and to update or remove that + object from some backing store. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Represents a chain of responsibility for builder strategies partitioned by stages. + + The stage enumeration to partition the strategies. + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with an inner strategy chain to use when building. + + The inner strategy chain to use first when finding strategies in the build operation. + + + + Adds a strategy to the chain at a particular stage. + + The strategy to add to the chain. + The stage to add the strategy. + + + + Add a new strategy for the . + + The of + The stage to add the strategy. + + + + Clear the current strategy chain list. + + + This will not clear the inner strategy chain if this instance was created with one. + + + + + Makes a strategy chain based on this instance. + + A new . + + + + Represents a chain of responsibility for builder strategies. + + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with a collection of strategies. + + A collection of strategies to initialize the chain. + + + + Adds a strategy to the chain. + + The strategy to add to the chain. + + + + Adds strategies to the chain. + + The strategies to add to the chain. + + + + Reverse the order of the strategy chain. + + The reversed strategy chain. + + + + Execute this strategy chain against the given context to build up. + + Context for the build processes. + The build up object + + + + Execute this strategy chain against the given context, + calling the TearDown methods on the strategies. + + Context for the teardown process. + + + + Returns an enumerator that iterates through the collection. + + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + + An object that can be used to iterate through the collection. + + + + + Build key used to combine a type object with a string name. Used by + ObjectBuilder to indicate exactly what is being built. + + + + + Create a new instance with the given + type and name. + + to build. + Key to use to look up type mappings and singletons. + + + + Create a new instance for the default + buildup of the given type. + + to build. + + + + This helper method creates a new instance. It is + initialized for the default key for the given type. + + Type to build. + A new instance. + + + + This helper method creates a new instance for + the given type and key. + + Type to build + Key to use to look up type mappings and singletons. + A new instance initialized with the given type and name. + + + + Compare two instances. + + Two instances compare equal + if they contain the same name and the same type. Also, comparing + against a different type will also return false. + Object to compare to. + True if the two keys are equal, false if not. + + + + Calculate a hash code for this instance. + + A hash code. + + + + Compare two instances for equality. + + Two instances compare equal + if they contain the same name and the same type. + First of the two keys to compare. + Second of the two keys to compare. + True if the values of the keys are the same, else false. + + + + Compare two instances for inequality. + + Two instances compare equal + if they contain the same name and the same type. If either field differs + the keys are not equal. + First of the two keys to compare. + Second of the two keys to compare. + false if the values of the keys are the same, else true. + + + + Formats the build key as a string (primarily for debugging). + + A readable string representation of the build key. + + + + Return the stored in this build key. + + The type to build. + + + + Returns the name stored in this build key. + + The name to use when building. + + + + A generic version of so that + you can new up a key using generic syntax. + + Type for the key. + + + + Construct a new that + specifies the given type. + + + + + Construct a new that + specifies the given type and name. + + Name for the key. + + + + A series of helper methods to deal with sequences - + objects that implement . + + + + + A function that turns an arbitrary parameter list into an + . + + Type of arguments. + The items to put into the collection. + An array that contains the values of the . + + + + Given two sequences, return a new sequence containing the corresponding values + from each one. + + Type of first sequence. + Type of second sequence. + First sequence of items. + Second sequence of items. + New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. + + + + A that lets you register a + delegate with the container to create an object, rather than calling + the object's constructor. + + + + + Base class for all extension objects. + + + + + The container calls this method when the extension is added. + + A instance that gives the + extension access to the internals of the container. + + + + Initial the container with this extension's functionality. + + + When overridden in a derived class, this method will modify the given + by adding strategies, policies, etc. to + install it's functions into the container. + + + + Removes the extension's functions from the container. + + + + This method is called when extensions are being removed from the container. It can be + used to do things like disconnect event handlers or clean up member state. You do not + need to remove strategies or policies here; the container will do that automatically. + + + The default implementation of this method does nothing. + + + + + The container this extension has been added to. + + The that this extension has been added to. + + + + The object used to manipulate + the inner state of the container. + + + + + Initialize this extension. This particular extension requires no + initialization work. + + + + + Register the given factory delegate to be called when the container is + asked to resolve and . + + Type that will be requested from the container. + The name that will be used when requesting to resolve this type. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Register the given factory delegate to be called when the container is + asked to resolve . + + Type that will be requested from the container. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + An implementation of that + acts as a decorator over another . + This checks to see if the current type being built is the + right one before checking the inner . + + + + + Create an instance of + + Type to check for. + Inner override to check after type matches. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience version of that lets you + specify the type to construct via generics syntax. + + Type to check for. + + + + Create an instance of . + + Inner override to check after type matches. + + + + Extension class that adds a set of convenience overloads to the + interface. + + + + + Register a type with specific members to be injected. + + Type this registration is for. + Container to configure. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + + This overload registers a default mapping and transient lifetime. + + + that will be requested. + that will actually be returned. + Container to configure. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Container to configure. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + that will be requested. + that will actually be returned. + Container to configure. + Name of this mapping. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Container to configure. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type with the container. + No type mapping is performed for this type. + + The type to apply the to. + Container to configure. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type with the container. + No type mapping is performed for this type. + + The type to configure injection on. + Container to configure. + Name that will be used to request the type. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + The type to apply the to. + Container to configure. + Name that will be used to request the type. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type with specific members to be injected. + + Container to configure. + Type this registration is for. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + + This overload registers a default mapping. + + + Container to configure. + that will be requested. + that will actually be returned. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + Container to configure. + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + Container to configure. + that will be requested. + that will actually be returned. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to apply the to. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to configure in the container. + Name to use for registration, null if a default registration. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to apply the to. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration and has the container take over the lifetime of the instance. + + Type of instance to register (may be an implemented interface instead of the full type). + Container to configure. + Object to returned. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration (name = null). + + + Type of instance to register (may be an implemented interface instead of the full type). + Container to configure. + Object to returned. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload automatically has the container take ownership of the . + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Container to configure. + Name for registration. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Container to configure. + Name for registration. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration and has the container take over the lifetime of the instance. + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration (name = null). + + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload automatically has the container take ownership of the . + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve an instance of the default requested type from the container. + + of object to get from the container. + Container to resolve from. + Any overrides for the resolve call. + The retrieved object. + + + + Resolve an instance of the requested type with the given name from the container. + + of object to get from the container. + Container to resolve from. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Resolve an instance of the default requested type from the container. + + Container to resolve from. + of object to get from the container. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Container to resolve from. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + + This overload uses the default registrations. + + + of object to perform injection on. + Container to resolve through. + Instance to build up. + Any overrides for the buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Container to resolve through. + Instance to build up. + name to use when looking up the typemappings and other configurations. + Any overrides for the Buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + + This overload uses the default registrations. + + + Container to resolve through. + of object to perform injection on. + Instance to build up. + Any overrides for the Buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Creates a new extension object and adds it to the container. + + Type of to add. The extension type + will be resolved from within the supplied . + Container to add the extension to. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + The configuration interface required. + Container to configure. + The requested extension's configuration interface, or null if not found. + + + + Check if a particular type has been registered with the container with + the default name. + + Container to inspect. + Type to check registration for. + True if this type has been registered, false if not. + + + + Check if a particular type/name pair has been registered with the container. + + Container to inspect. + Type to check registration for. + Name to check registration for. + True if this type/name pair has been registered, false if not. + + + + Check if a particular type has been registered with the container with the default name. + + Type to check registration for. + Container to inspect. + True if this type has been registered, false if not. + + + + Check if a particular type/name pair has been registered with the container. + + Type to check registration for. + Container to inspect. + Name to check registration for. + True if this type/name pair has been registered, false if not. + + + + The class provides the means for extension objects + to manipulate the internal state of the . + + + + + Store a type/name pair for later resolution. + + + + When users register type mappings (or other things) with a named key, this method + allows you to register that name with the container so that when the + method is called, that name is included in the list that is returned. + + to register. + Name associated with that type. + + + + The container that this context is associated with. + + The object. + + + + The strategies this container uses. + + The that the container uses to build objects. + + + + The strategies this container uses to construct build plans. + + The that this container uses when creating + build plans. + + + + The policies this container uses. + + The the that container uses to build objects. + + + + The that this container uses. + + The is used to manage objects that the container is managing. + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This event is raised when the method is called, providing + the newly created child container to extensions to act on as they see fit. + + + + + An EventArgs class that holds a string Name. + + + + + Create a new with a null name. + + + + + Create a new with the given name. + + Name to store. + + + + The name. + + Name used for this EventArg object. + + + + Event argument class for the event. + + + + + Create a new instance of . + + Type to map from. + Type to map to. + Name for the registration. + to manage instances. + + + + Type to map from. + + + + + Type to map to. + + + + + to manage instances. + + + + + Event argument class for the event. + + + + + Create a default instance. + + + + + Create a instance initialized with the given arguments. + + Type of instance being registered. + The instance object itself. + Name to register under, null if default registration. + object that handles how + the instance will be owned. + + + + Type of instance being registered. + + + Type of instance being registered. + + + + + Instance object being registered. + + Instance object being registered + + + + that controls ownership of + this instance. + + + + + A that lets you specify that + an instance of a generic type parameter should be resolved. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + A that lets you specify that + an array containing the registered instances of a generic type parameter + should be resolved. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + The values for the elements, that will + be converted to objects. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + A type is considered compatible if it is an array type of rank one + and its element type is a generic type parameter with a name matching this generic + parameter name configured for the receiver. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + A Unity container extension that allows you to configure + which constructors, properties, and methods get injected + via an API rather than through attributes. + + + + + Initial the container with this extension's functionality. + + + When overridden in a derived class, this method will modify the given + by adding strategies, policies, etc. to + install it's functions into the container. + + + + API to configure the injection settings for a particular type. + + Type the injection is being configured for. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type the injection is being configured for. + Name of registration + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type. + + Type to configure. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type to configure. + Name of registration. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type of interface/base class being registered (may be null). + Type of actual implementation class being registered. + Name of registration. + Objects containing the details on which members to inject and how. + This extension object. + + + + A class that holds the collection of information + for a constructor, so that the container can + be configured to call this constructor. + + + + + Create a new instance of that looks + for a constructor with the given set of parameters. + + The values for the parameters, that will + be converted to objects. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Interface registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + An that configures the + container to call a method as part of buildup. + + + + + Create a new instance which will configure + the container to call the given methods with the given parameters. + + Name of the method to call. + Parameter values for the method. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + A small function to handle name matching. You can override this + to do things like case insensitive comparisons. + + MethodInfo for the method you're checking. + Name of the method you're looking for. + True if a match, false if not. + + + + A class that holds on to the given value and provides + the required + when the container is configured. + + + + + Create an instance of that stores + the given value, using the runtime type of that value as the + type of the parameter. + + Value to be injected for this parameter. + + + + Create an instance of that stores + the given value, associated with the given type. + + Type of the parameter. + Value of the parameter + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of that makes it a + little easier to specify the type of the parameter. + + Type of parameter. + + + + Create a new . + + Value for the parameter. + + + + This class stores information about which properties to inject, + and will configure the container accordingly. + + + + + Configure the container to inject the given property name, + resolving the value via the container. + + Name of the property to inject. + + + + Configure the container to inject the given property name, + using the value supplied. This value is converted to an + object using the + rules defined by the + method. + + Name of property to inject. + Value for property. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Interface being registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + A class that stores a type, and generates a + resolver object that resolves all the named instances or the + type registered in a container. + + + + + Construct a new that + resolves to the given element type and collection of element values. + + The type of elements to resolve. + The values for the elements, that will + be converted to objects. + + + + Construct a new that + resolves to the given array and element types and collection of element values. + + The type for the array of elements to resolve. + The type of elements to resolve. + The values for the elements, that will + be converted to objects. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of for convenience + when creating them by hand. + + Type of the elements for the array of the parameter. + + + + Construct a new that + resolves to the given element generic type with the given element values. + + The values for the elements, that will + be converted to objects. + + + + Interface defining the behavior of the Unity dependency injection container. + + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve an instance of the requested type with the given name from the container. + + of object to get from the container. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Instance to build up. + name to use when looking up the TypeMappings and other configurations. + Any overrides for the resolve calls. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container, and clean it up. + + The object to tear down. + + + + Add an extension object to the container. + + to add. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + of configuration interface required. + The requested extension's configuration interface, or null if not found. + + + + Remove all installed extensions from this container. + + + + This method removes all extensions from the container, including the default ones + that implement the out-of-the-box behavior. After this method, if you want to use + the container again you will need to either read the default extensions or replace + them with your own. + + + The registered instances and singletons that have already been set up in this container + do not get removed. + + + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Create a child container. + + + A child container shares the parent's configuration, but can be configured with different + settings or lifetime. + The new child container. + + + + The parent of this container. + + The parent container, or null if this container doesn't have one. + + + + Get a sequence of that describe the current state + of the container. + + + + + A that holds a weak reference to + it's managed instance. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + An implementation of that + creates instances of the type of the given Lifetime Manager + by resolving them through the container. + + + + + Create a new that will + return instances of the given type, creating them by + resolving through the container. + + Container to resolve with. + Type of LifetimeManager to create. + + + + Create a new instance of . + + The new instance. + + + + The type of Lifetime manager that will be created by this factory. + + + + + A that holds the instances given to it, + keeping one instance per thread. + + + + This LifetimeManager does not dispose the instances it holds. + + + + + + Initializes a new instance of the class. + + + + + Retrieve a value from the backing store associated with this Lifetime policy for the + current thread. + + the object desired, or if no such object is currently + stored for the current thread. + + + + Stores the given value into backing store for retrieval later when requested + in the current thread. + + The object being stored. + + + + Remove the given object from backing store. + + Not implemented for this lifetime manager. + + + + An implementation that does nothing, + thus ensuring that instances are created new every time. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + This strategy implements the logic that will call container.ResolveAll + when an array parameter is detected. + + + + + Do the PreBuildUp stage of construction. This is where the actual work is performed. + + Current build context. + + + + An implementation of that is + aware of the build keys used by the Unity container. + + + + + Create a instance for the given + . + + + This implementation looks for the Unity on the + parameter and uses it to create an instance of + for this parameter. + Parameter to create the resolver for. + The resolver object. + + + + An implementation of that is aware + of the build keys used by the Unity container. + + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + An implementation of that is aware of + the build keys used by the unity container. + + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + A implementation that returns + the value set in the constructor. + + + + + Create a new instance of + which will return the given value when resolved. + + The value to return. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + An implementation of that stores a + type and name, and at resolution time puts them together into a + . + + + + + Create an instance of + with the given type and name. + + The type. + The name (may be null). + + + + Resolve the value for a dependency. + + Current build context. + The value for the dependency. + + + + The type that this resolver resolves. + + + + + The name that this resolver resolves. + + + + + An implementation of that resolves to + to an array populated with the values that result from resolving other instances + of . + + + + + Create an instance of + with the given type and a collection of + instances to use when populating the result. + + The type. + The resolver policies to use when populating an array. + + + + Resolve the value for a dependency. + + Current build context. + An array populated with the results of resolving the resolver policies. + + + + An implementation of that selects + the given constructor and creates the appropriate resolvers to call it with + the specified parameters. + + + + + Create an instance of that + will return the given constructor, being passed the given injection values + as parameters. + + The constructor to call. + Set of objects + that describes how to obtain the values for the constructor parameters. + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Helper class for implementing selector policies that need to + set up dependency resolver policies. + + + + + Add dependency resolvers to the parameter set. + + Type that's currently being built (used to resolve open generics). + PolicyList to add the resolvers to. + Objects supplying the dependency resolvers. + Result object to store the keys in. + + + + A implementation that calls the specific + methods with the given parameters. + + + + + Add the given method and parameter collection to the list of methods + that will be returned when the selector's + method is called. + + Method to call. + sequence of objects + that describe how to create the method parameter values. + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + An implementation of which returns + the set of specific properties that the selector was configured with. + + + + + Add a property that will be par of the set returned when the + is called. + + The property to set. + object describing + how to create the value to inject. + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + The exception thrown by the Unity container when + an attempt to resolve a dependency fails. + + + + + Create a new that records + the exception for the given type and name. + + Type requested from the container. + Name requested from the container. + The actual exception that caused the failure of the build. + The build context representing the failed operation. + + + + The type that was being requested from the container at the time of failure. + + + + + The name that was being requested from the container at the time of failure. + + + + + A class that stores a name and type, and generates a + resolver object that resolves the parameter via the + container. + + + + + Construct a new that + resolves to the given type. + + Type of this parameter. + + + + Construct a new that + resolves the given type and name. + + Type of this parameter. + Name to use when resolving parameter. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of for convenience + when creating them by hand. + + Type of the parameter + + + + Create a new for the given + generic type and the default name. + + + + + Create a new for the given + generic type and name. + + Name to use to resolve this parameter. + + + + An implementation of that wraps a Unity container. + + + + + Initializes a new instance of the class for a container. + + The to wrap with the + interface implementation. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + When implemented by inheriting classes, this method will do the actual work of resolving + the requested service instance. + + Type of instance requested.Name of registered service you want. May be null. + + The requested service instance. + + + + + When implemented by inheriting classes, this method will do the actual work of + resolving all the requested service instances. + + Type of service requested. + + Sequence of service instance objects. + + + + + A static helper class that includes various parameter checking routines. + + + + + Throws if the given argument is null. + + if tested value if null. + Argument value to test. + Name of the argument being tested. + + + + Throws an exception if the tested string argument is null or the empty string. + + Thrown if string value is null. + Thrown if the string is empty + Argument value to check. + Name of argument being checked. + + + + Verifies that an argument type is assignable from the provided type (meaning + interfaces are implemented, or classes exist in the base class hierarchy). + + The argument type that will be assigned to. + The type of the value being assigned. + Argument name. + + + + Verifies that an argument instance is assignable from the provided type (meaning + interfaces are implemented, or classes exist in the base class hierarchy, or instance can be + assigned through a runtime wrapper, as is the case for COM Objects). + + The argument type that will be assigned to. + The instance that will be assigned. + Argument name. + + + + A helper class to manage the names that get registered in the container + + + + + The build stages we use in the Unity container + strategy pipeline. + + + + + First stage. By default, nothing happens here. + + + + + Second stage. Type mapping occurs here. + + + + + Third stage. lifetime managers are checked here, + and if they're available the rest of the pipeline is skipped. + + + + + Fourth stage. Reflection over constructors, properties, etc. is + performed here. + + + + + Fifth stage. Instance creation happens here. + + + + + Sixth stage. Property sets and method injection happens here. + + + + + Seventh and final stage. By default, nothing happens here. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. + + + + + Looks up a localized string similar to The provided string argument must not be empty.. + + + + + Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). + + + + + Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. + + + + + Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. + + + + + Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. + + + + + Looks up a localized string similar to Cannot extract type from build key {0}.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. + + + + + Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. + + + + + Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. + + + + + Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. + + + + + Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. + + + + + Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. + + + + + Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. + + + + + Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. + + + + + Looks up a localized string similar to Calling constructor {0}. + + + + + Looks up a localized string similar to Calling method {0}.{1}. + + + + + Looks up a localized string similar to An item with the given key is already present in the dictionary.. + + + + + Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. + + + + + Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. + + + + + Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. + + + + + Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . + + + + + Looks up a localized string similar to Could not resolve dependency for build key {0}.. + + + + + Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. + + + + + Looks up a localized string similar to The supplied type {0} must be an open generic type.. + + + + + Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. + + + + + Looks up a localized string similar to The type {0} does not have an accessible constructor.. + + + + + Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". + + + + + Looks up a localized string similar to while resolving. + + + + + Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. + + + + + Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. + + + + + Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. + + + + + Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. + + + + + Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. + + + + + Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. + + + + + Looks up a localized string similar to The property {0} on type {1} is not settable.. + + + + + Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. + + + + + Looks up a localized string similar to The value for the property "{0}" could not be resolved.. + + + + + Looks up a localized string similar to The provided string argument must not be empty.. + + + + + Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". + Exception occurred while: {2}. + Exception is: {3} - {4} + ----------------------------------------------- + At the time of the exception, the container was: + . + + + + + Looks up a localized string similar to Resolving {0},{1}. + + + + + Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). + + + + + Looks up a localized string similar to Resolving value for property {0}.{1}. + + + + + Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. + + + + + Looks up a localized string similar to Setting value for property {0}.{1}. + + + + + Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. + + + + + Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. + + + + + Looks up a localized string similar to <unknown>. + + + + + A simple, extensible dependency injection container. + + + + + Create a default . + + + + + Create a with the given parent container. + + The parent . The current object + will apply its own settings first, and then check the parent for additional ones. + + + + RegisterType a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + RegisterType an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + + If true, the container will take over the lifetime of the instance, + calling Dispose on it (if it's ) when the container is Disposed. + + If false, container will not maintain a strong reference to . User is responsible + for disposing instance, and for keeping the instance from being garbage collected. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Get an instance of the requested type with the given name from the container. + + of object to get from the container. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Instance to build up. + name to use when looking up the typemappings and other configurations. + Any overrides for the buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container, and clean it up. + + The object to tear down. + + + + Add an extension object to the container. + + to add. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Get access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + of configuration interface required. + The requested extension's configuration interface, or null if not found. + + + + Remove all installed extensions from this container. + + + + This method removes all extensions from the container, including the default ones + that implement the out-of-the-box behavior. After this method, if you want to use + the container again you will need to either read the default extensions or replace + them with your own. + + + The registered instances and singletons that have already been set up in this container + do not get removed. + + + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Create a child container. + + + A child container shares the parent's configuration, but can be configured with different + settings or lifetime. + The new child container. + + + + Dispose this container instance. + + + Disposing the container also disposes any child containers, + and disposes any instances whose lifetimes are managed + by the container. + + + + + Dispose this container instance. + + + This class doesn't have a finalizer, so will always be true. + True if being called from the IDisposable.Dispose + method, false if being called from a finalizer. + + + + Remove policies associated with building this type. This removes the + compiled build plan so that it can be rebuilt with the new settings + the next time this type is resolved. + + Type of object to clear the plan for. + Name the object is being registered with. + + + + The parent of this container. + + The parent container, or null if this container doesn't have one. + + + + Get a sequence of that describe the current state + of the container. + + + + + Implementation of the ExtensionContext that is actually used + by the UnityContainer implementation. + + + This is a nested class so that it can access state in the + container that would otherwise be inaccessible. + + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This extension supplies the default behavior of the UnityContainer API + by handling the context events and setting policies. + + + + + Install the default container behavior into the container. + + + + + Remove the default behavior from the container. + + + + + This extension installs the default strategies and policies into the container + to implement the standard behavior of the Unity container. + + + + + Add the default ObjectBuilder strategies & policies to the container. + + + + + Helper class to wrap common reflection stuff dealing with + methods. + + + + + Create a new instance that + lets us do more reflection stuff on that method. + + The method to reflect on. + + + + Given our set of generic type arguments, + + The generic type arguments. + An array with closed parameter types. + + + + Returns true if any of the parameters of this method + are open generics. + + + + + Return the of each parameter for this + method. + + Sequence of objects, one for + each parameter in order. + + + + A helper class that encapsulates two different + data items together into a a single item. + + + + + Create a new containing + the two values give. + + First value + Second value + + + + The first value of the pair. + + + + + The second value of the pair. + + + + + Container for a Pair helper method. + + + + + A helper factory method that lets users take advantage of type inference. + + Type of first value. + Type of second value. + First value. + Second value. + A new instance. + + + + A utility class that handles the logic of matching parameter + lists, so we can find the right constructor and method overloads. + + + + + Create a new that will attempt to + match the given parameter types. + + Target parameters to match against. + + + + Tests to see if the given set of types matches the ones + we're looking for. + + parameter list to look for. + true if they match, false if they don't. + + + + Tests to see if the given set of types matches the ones we're looking for. + + Candidate method signature to look for. + True if they match, false if they don't. + + + + Another reflection helper class that has extra methods + for dealing with ParameterInfo. + + + + + A small helper class to encapsulate details of the + reflection API, particularly around generics. + + + + + Create a new instance that + lets you look at information about the given type. + + Type to do reflection on. + + + + Test the given object, looking at + the parameters. Determine if any of the parameters are + open generic types that need type attributes filled in. + + The method to check. + True if any of the parameters are open generics. False if not. + + + + If this type is an open generic, use the + given array to + determine what the required closed type is and return that. + + If the parameter is not an open type, just + return this parameter's type. + Type arguments to substitute in for + the open type parameters. + Corresponding closed type of this parameter. + + + + Given a generic argument name, return the corresponding type for this + closed type. For example, if the current type is SomeType<User>, and the + corresponding definition was SomeType<TSomething>, calling this method + and passing "TSomething" will return typeof(User). + + Name of the generic parameter. + Type of the corresponding generic parameter, or null if there + is no matching name. + + + + The object we're reflecting over. + + + + + Is this type generic? + + + + + Is this type an open generic (no type parameter specified) + + + + + Is this type an array type? + + + + + Is this type an array of generic elements? + + + + + The type of the elements in this type (if it's an array). + + + + + Returns all the public constructors defined for the current reflected . + + + An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the + current reflected , but not including the type initializer (static constructor). + + + + + Create a new instance of that + lets you query information about the given ParameterInfo object. + + Parameter to query. + + + + A set of helper methods to pick through lambdas and pull out + from them. + + + + + Pull out a object from an expression of the form + () => SomeClass.SomeMethod() + + Expression describing the method to call. + Corresponding . + + + + Pull out a object from an expression of the form + x => x.SomeMethod() + + The type where the method is defined. + Expression describing the method to call. + Corresponding . + + + + Pull out a object for the get method from an expression of the form + x => x.SomeProperty + + The type where the method is defined. + The type for the property. + Expression describing the property for which the get method is to be extracted. + Corresponding . + + + + Pull out a object for the set method from an expression of the form + x => x.SomeProperty + + The type where the method is defined. + The type for the property. + Expression describing the property for which the set method is to be extracted. + Corresponding . + + + + + + + + + + + + + Pull out a object from an expression of the form () => new SomeType() + + The type where the constructor is defined. + Expression invoking the desired constructor. + Corresponding . + + + diff --git a/src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml b/src/packages/Unity.4.0.1/lib/portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10/Microsoft.Practices.Unity.xml similarity index 94% rename from src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml rename to src/packages/Unity.4.0.1/lib/portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10/Microsoft.Practices.Unity.xml index e77de84..f99ca70 100644 --- a/src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml +++ b/src/packages/Unity.4.0.1/lib/portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10/Microsoft.Practices.Unity.xml @@ -1,5928 +1,5916 @@ - - - - Microsoft.Practices.Unity.Silverlight - - - - - This attribute is used to mark properties and parameters as targets for injection. - - - For properties, this attribute is necessary for injection to happen. For parameters, - it's not needed unless you want to specify additional information to control how - the parameter is resolved. - - - - - Base class for attributes that can be placed on parameters - or properties to specify how to resolve the value for - that parameter or property. - - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - Create an instance of with no name. - - - - - Create an instance of with the given name. - - Name to use when resolving this dependency. - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - The name specified in the constructor. - - - - - This attribute is used to indicate which constructor to choose when - the container attempts to build a type. - - - - - This attribute is used to mark methods that should be called when - the container is building an object. - - - - - An used to mark a dependency - as optional - the container will try to resolve it, and return null - if the resolution fails rather than throw. - - - - - Construct a new object. - - - - - Construct a new object that - specifies a named dependency. - - Name of the dependency. - - - - Create an instance of that - will be used to get the value for the member this attribute is - applied to. - - Type of parameter or property that - this attribute is decoration. - The resolver object. - - - - Name of the dependency. - - - - - A that composites other - ResolverOverride objects. The GetResolver operation then - returns the resolver from the first child override that - matches the current context and request. - - - - - Base class for all override objects passed in the - method. - - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Wrap this resolver in one that verifies the type of the object being built. - This allows you to narrow any override down to a specific type easily. - - Type to constrain the override to. - The new override. - - - - Wrap this resolver in one that verifies the type of the object being built. - This allows you to narrow any override down to a specific type easily. - - Type to constrain the override to. - The new override. - - - - Add a new to the collection - that is checked. - - item to add. - - - - Add a setof s to the collection. - - items to add. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Class that returns information about the types registered in a container. - - - - - The type that was passed to the method - as the "from" type, or the only type if type mapping wasn't done. - - - - - The type that this registration is mapped to. If no type mapping was done, the - property and this one will have the same value. - - - - - Name the type was registered under. Null for default registration. - - - - - The registered lifetime manager instance. - - - - - The lifetime manager for this registration. - - - This property will be null if this registration is for an open generic. - - - - A class that overrides - the value injected whenever there is a dependency of the - given type, regardless of where it appears in the object graph. - - - - - Create an instance of to override - the given type with the given value. - - Type of the dependency. - Value to use. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience version of that lets you - specify the dependency type using generic syntax. - - Type of the dependency to override. - - - - Construct a new object that will - override the given dependency, and pass the given value. - - - - - A convenience form of that lets you - specify multiple parameter overrides in one shot rather than having - to construct multiple objects. - - - This class isn't really a collection, it just implements IEnumerable - so that we get use of the nice C# collection initializer syntax. - - - - - Base helper class for creating collections of objects - for use in passing a bunch of them to the resolve call. This base class provides - the mechanics needed to allow you to use the C# collection initializer syntax. - - Concrete type of the this class collects. - Key used to create the underlying override object. - Value that the override returns. - - - - Add a new override to the collection with the given key and value. - - Key - for example, a parameter or property name. - Value - the value to be returned by the override. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - Event argument class for the event. - - - - - Construct a new object with the - given child container object. - - An for the newly created child - container. - - - - The newly created child container. - - - - - An extension context for the created child container. - - - - - The class provides the means for extension objects - to manipulate the internal state of the . - - - - - Store a type/name pair for later resolution. - - - - When users register type mappings (or other things) with a named key, this method - allows you to register that name with the container so that when the - method is called, that name is included in the list that is returned. - - to register. - Name assocated with that type. - - - - The container that this context is associated with. - - The object. - - - - The strategies this container uses. - - The that the container uses to build objects. - - - - The strategies this container uses to construct build plans. - - The that this container uses when creating - build plans. - - - - The policies this container uses. - - The the that container uses to build objects. - - - - The that this container uses. - - The is used to manage objects that the container is managing. - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - This event is raised when the method is called, providing - the newly created child container to extensions to act on as they see fit. - - - - - Base interface for all extension configuration interfaces. - - - - - Retrieve the container instance that we are currently configuring. - - - - - An EventArgs class that holds a string Name. - - - - - Create a new with a null name. - - - - - Create a new with the given name. - - Name to store. - - - - The name. - - Name used for this event arg object. - - - - Event argument class for the event. - - - - - Create a new instance of . - - Type to map from. - Type to map to. - Name for the registration. - to manage instances. - - - - Type to map from. - - - - - Type to map to. - - - - - to manage instances. - - - - - Event argument class for the event. - - - - - Create a default instance. - - - - - Create a instance initialized with the given arguments. - - Type of instance being registered. - The instance object itself. - Name to register under, null if default registration. - object that handles how - the instance will be owned. - - - - Type of instance being registered. - - - Type of instance being registered. - - - - - Instance object being registered. - - Instance object being registered - - - - that controls ownership of - this instance. - - - - - Base class for all extension objects. - - - - - The container calls this method when the extension is added. - - A instance that gives the - extension access to the internals of the container. - - - - Initial the container with this extension's functionality. - - - When overridden in a derived class, this method will modify the given - by adding strategies, policies, etc. to - install it's functions into the container. - - - - Removes the extension's functions from the container. - - - - This method is called when extensions are being removed from the container. It can be - used to do things like disconnect event handlers or clean up member state. You do not - need to remove strategies or policies here; the container will do that automatically. - - - The default implementation of this method does nothing. - - - - - The container this extension has been added to. - - The that this extension has been added to. - - - - The object used to manipulate - the inner state of the container. - - - - - A that lets you specify that - an instance of a generic type parameter should be resolved. - - - - - Base class for subclasses that let you specify that - an instance of a generic type parameter should be resolved. - - - - - Base type for objects that are used to configure parameters for - constructor or method injection, or for getting the value to - be injected into a property. - - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Convert the given set of arbitrary values to a sequence of InjectionParameterValue - objects. The rules are: If it's already an InjectionParameterValue, return it. If - it's a Type, return a ResolvedParameter object for that type. Otherwise return - an InjectionParameter object for that value. - - The values to build the sequence from. - The resulting converted sequence. - - - - Convert an arbitrary value to an InjectionParameterValue object. The rules are: - If it's already an InjectionParameterValue, return it. If it's a Type, return a - ResolvedParameter object for that type. Otherwise return an InjectionParameter - object for that value. - - The value to convert. - The resulting . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - A that lets you specify that - an array containing the registered instances of a generic type parameter - should be resolved. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - The values for the elements, that will - be converted to objects. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - A type is considered compatible if it is an array type of rank one - and its element type is a generic type parameter with a name matching this generic - parameter name configured for the receiver. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - A Unity container extension that allows you to configure - which constructors, properties, and methods get injected - via an API rather than through attributes. - - - - - Initial the container with this extension's functionality. - - - When overridden in a derived class, this method will modify the given - by adding strategies, policies, etc. to - install it's functions into the container. - - - - API to configure the injection settings for a particular type. - - Type the injection is being configured for. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type the injection is being configured for. - Name of registration - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type. - - Type to configure. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type to configure. - Name of registration. - Objects containing the details on which members to inject and how. - This extension object. - - - - API to configure the injection settings for a particular type/name pair. - - Type of interface/base class being registered (may be null). - Type of actual implementation class being registered. - Name of registration. - Objects containing the details on which members to inject and how. - This extension object. - - - - A class that holds the collection of information - for a constructor, so that the container can - be configured to call this constructor. - - - - - Base class for objects that can be used to configure what - class members get injected by the container. - - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type to register. - Policy list to add policies to. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface being registered. If no interface, - this will be null. - Type of concrete type being registered. - Name used to resolve the type object. - Policy list to add policies to. - - - - Create a new instance of that looks - for a constructor with the given set of parameters. - - The values for the parameters, that will - be converted to objects. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Interface registered, ignored in this implementation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - A class that lets you specify a factory method the container - will use to create the object. - - This is a significantly easier way to do the same - thing the old static factory extension was used for. - - - - Create a new instance of with - the given factory function. - - Factory function. - - - - Create a new instance of with - the given factory function. - - Factory function. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface being registered. If no interface, - this will be null. This parameter is ignored in this implementation. - Type of concrete type being registered. - Name used to resolve the type object. - Policy list to add policies to. - - - - An that configures the - container to call a method as part of buildup. - - - - - Create a new instance which will configure - the container to call the given methods with the given parameters. - - Name of the method to call. - Parameter values for the method. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface registered, ignored in this implementation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - A small function to handle name matching. You can override this - to do things like case insensitive comparisons. - - MethodInfo for the method you're checking. - Name of the method you're looking for. - True if a match, false if not. - - - - A class that holds on to the given value and provides - the required - when the container is configured. - - - - - A base class for implementing classes - that deal in explicit types. - - - - - Create a new that exposes - information about the given . - - Type of the parameter. - - - - Test to see if this parameter value has a matching type for the given type. - - Type to check. - True if this parameter value is compatible with type , - false if not. - - - - The type of parameter this object represents. - - - - - Name for the type represented by this . - This may be an actual type name or a generic argument name. - - - - - Create an instance of that stores - the given value, using the runtime type of that value as the - type of the parameter. - - Value to be injected for this parameter. - - - - Create an instance of that stores - the given value, associated with the given type. - - Type of the parameter. - Value of the parameter - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of that makes it a - little easier to specify the type of the parameter. - - Type of parameter. - - - - Create a new . - - Value for the parameter. - - - - This class stores information about which properties to inject, - and will configure the container accordingly. - - - - - Configure the container to inject the given property name, - resolving the value via the container. - - Name of the property to inject. - - - - Configure the container to inject the given property name, - using the value supplied. This value is converted to an - object using the - rules defined by the - method. - - Name of property to inject. - Value for property. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Interface being registered, ignored in this implemenation. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - A that lets you specify that - an instance of a generic type parameter should be resolved, providing the - value if resolving fails. - - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - - - - Create a new instance that specifies - that the given named generic parameter should be resolved. - - The generic parameter name to resolve. - name to use when looking up in the container. - - - - Return a instance that will - return this types value for the parameter. - - The actual type to resolve. - The resolution key. - The . - - - - A that can be passed to - to configure a - parameter or property as an optional dependency. - - - - - Construct a new object that - specifies the given . - - Type of the dependency. - - - - Construct a new object that - specifies the given and . - - Type of the dependency. - Name for the dependency. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of that lets you - specify the type of the dependency using generics syntax. - - Type of the dependency. - - - - Construct a new . - - - - - Construct a new with the given - . - - Name of the dependency. - - - - A class that stores a type, and generates a - resolver object that resolves all the named instances or the - type registered in a container. - - - - - Construct a new that - resolves to the given element type and collection of element values. - - The type of elements to resolve. - The values for the elements, that will - be converted to objects. - - - - Construct a new that - resolves to the given array and element types and collection of element values. - - The type for the array of elements to resolve. - The type of elements to resolve. - The values for the elements, that will - be converted to objects. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of for convenience - when creating them by hand. - - Type of the elements for the array of the parameter. - - - - Construct a new that - resolves to the given element generic type with the given element values. - - The values for the elements, that will - be converted to objects. - - - - A class that stores a name and type, and generates a - resolver object that resolves the parameter via the - container. - - - - - Construct a new that - resolves to the given type. - - Type of this parameter. - - - - Construct a new that - resolves the given type and name. - - Type of this parameter. - Name to use when resolving parameter. - - - - Return a instance that will - return this types value for the parameter. - - Type that contains the member that needs this parameter. Used - to resolve open generic parameters. - The . - - - - A generic version of for convenience - when creating them by hand. - - Type of the parameter - - - - Create a new for the given - generic type and the default name. - - - - - Create a new for the given - generic type and name. - - Name to use to resolve this parameter. - - - - Interface defining the behavior of the Unity dependency injection container. - - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve an instance of the requested type with the given name from the container. - - of object to get from the container. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the resolve calls. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container, and clean it up. - - The object to tear down. - - - - Add an extension object to the container. - - to add. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - of configuration interface required. - The requested extension's configuration interface, or null if not found. - - - - Remove all installed extensions from this container. - - - - This method removes all extensions from the container, including the default ones - that implement the out-of-the-box behavior. After this method, if you want to use - the container again you will need to either readd the default extensions or replace - them with your own. - - - The registered instances and singletons that have already been set up in this container - do not get removed. - - - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Create a child container. - - - A child container shares the parent's configuration, but can be configured with different - settings or lifetime. - The new child container. - - - - The parent of this container. - - The parent container, or null if this container doesn't have one. - - - - Get a sequence of that describe the current state - of the container. - - - - - A that holds onto the instance given to it. - When the is disposed, - the instance is disposed with it. - - - - - Base class for Lifetime managers which need to synchronize calls to - . - - - - The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. - - - Calls to the method of a - instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released - when such an initialization takes place by calling the method or if - the build request which resulted in the call to the GetValue method fails. - - - - - - - Base class for Lifetime managers - classes that control how - and when instances are created by the Unity container. - - - - - A that controls how instances are - persisted and recovered from an external store. Used to implement - things like singletons and per-http-request lifetime. - - - - - Represents a builder policy interface. Since there are no fixed requirements - for policies, it acts as a marker interface from which to derive all other - policy interfaces. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object to store. - - - - Remove the value this lifetime policy is managing from backing store. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - This interface provides a hook for the builder context to - implement error recovery when a builder strategy throws - an exception. Since we can't get try/finally blocks onto - the call stack for later stages in the chain, we instead - add these objects to the context. If there's an exception, - all the current IRequiresRecovery instances will have - their Recover methods called. - - - - - A method that does whatever is needed to clean up - as part of cleaning up after an exception. - - - Don't do anything that could throw in this method, - it will cause later recover operations to get skipped - and play real havoc with the stack trace. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - Calls to this method acquire a lock which is released only if a non-null value - has been set for the lifetime manager. - - - - Performs the actual retrieval of a value from the backing store associated - with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - This method is invoked by - after it has acquired its lock. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - Setting a value will attempt to release the lock acquired by - . - - - - Performs the actual storage of the given value into backing store for retrieval later. - - The object being stored. - This method is invoked by - before releasing its lock. - - - - Remove the given object from backing store. - - - - - A method that does whatever is needed to clean up - as part of cleaning up after an exception. - - - Don't do anything that could throw in this method, - it will cause later recover operations to get skipped - and play real havoc with the stack trace. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. - - Always true, since we don't have a finalizer. - - - - A that holds a weak reference to - it's managed instance. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - A special lifetime manager which works like , - except that in the presence of child containers, each child gets it's own instance - of the object, instead of sharing one in the common parent. - - - - - An implementation of that - creates instances of the type of the given Lifetime Manager - by resolving them through the container. - - - - - A builder policy used to create lifetime policy instances. - Used by the LifetimeStrategy when instantiating open - generic types. - - - - - Create a new instance of . - - The new instance. - - - - The type of Lifetime manager that will be created by this factory. - - - - - Create a new that will - return instances of the given type, creating them by - resolving through the container. - - Container to resolve with. - Type of LifetimeManager to create. - - - - Create a new instance of . - - The new instance. - - - - The type of Lifetime manager that will be created by this factory. - - - - - This is a custom lifetime manager that acts like , - but also provides a signal to the default build plan, marking the type so that - instances are reused across the build up object graph. - - - - - Construct a new object that does not - itself manage an instance. - - - - - Construct a new object that stores the - give value. This value will be returned by - but is not stored in the lifetime manager, nor is the value disposed. - This Lifetime manager is intended only for internal use, which is why the - normal method is not used here. - - Value to store. - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. In this class, - this is a noop, since it has special hooks down in the guts. - - The object being stored. - - - - Remove the given object from backing store. Noop in this class. - - - - - A that holds the instances given to it, - keeping one instance per thread. - - - - This LifetimeManager does not dispose the instances it holds. - - - - - - Initializes a new instance of the class. - - - - - Retrieve a value from the backing store associated with this Lifetime policy for the - current thread. - - the object desired, or if no such object is currently - stored for the current thread. - - - - Stores the given value into backing store for retrieval later when requested - in the current thread. - - The object being stored. - - - - Remove the given object from backing store. - - Not implemented for this lifetime manager. - - - - An implementation that does nothing, - thus ensuring that instances are created new every time. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - This strategy implements the logic that will call container.ResolveAll - when an array parameter is detected. - - - - - Represents a strategy in the chain of responsibility. - Strategies are required to support both BuildUp and TearDown. - - - - - Represents a strategy in the chain of responsibility. - Strategies are required to support both BuildUp and TearDown. Although you - can implement this interface directly, you may also choose to use - as the base class for your strategies, as - this class provides useful helper methods and makes support BuildUp and TearDown - optional. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a teardown operation. The - PostTearDown method is called when the chain has finished the PreTearDown - phase and executes in reverse order from the PreTearDown calls. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Called during the chain of responsibility for a teardown operation. The - PostTearDown method is called when the chain has finished the PreTearDown - phase and executes in reverse order from the PreTearDown calls. - - Context of the teardown operation. - - - - Do the PreBuildUp stage of construction. This is where the actual work is performed. - - Current build context. - - - - An implementation of that is - aware of the build keys used by the Unity container. - - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - - - - A that, when implemented, - will determine which constructor to call from the build plan. - - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - - Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y. - - - The second object to compare. - The first object to compare. - - - - Create a instance for the given - . - - - This implementation looks for the Unity on the - parameter and uses it to create an instance of - for this parameter. - Parameter to create the resolver for. - The resolver object. - - - - An implementation of that is aware - of the build keys used by the Unity container. - - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - Attribute that marks methods that should - be called. - - - - An that will examine the given - types and return a sequence of objects - that should be called as part of building the object. - - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - An implementation of that is aware of - the build keys used by the unity container. - - - - - Base class that provides an implementation of - which lets you override how the parameter resolvers are created. - - - - - An that returns a sequence - of properties that should be injected for the given type. - - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - A strategy that handles Hierarchical lifetimes across a set of parent/child - containers. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - A implementation that returns - the value set in the constructor. - - - - - A that is used at build plan execution time - to resolve a dependent value. - - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - Create a new instance of - which will return the given value when resolved. - - The value to return. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - An implementation of that stores a - type and name, and at resolution time puts them together into a - . - - - - - Create an instance of - with the given type and name. - - The type. - The name (may be null). - - - - Resolve the value for a dependency. - - Current build context. - The value for the dependency. - - - - The type that this resolver resolves. - - - - - The name that this resolver resolves. - - - - - A that will attempt to - resolve a value, and return null if it cannot rather than throwing. - - - - - Construct a new object - that will attempt to resolve the given name and type from the container. - - Type to resolve. Must be a reference type. - Name to resolve with. - - - - Construct a new object - that will attempt to resolve the given type from the container. - - Type to resolve. Must be a reference type. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - Type this resolver will resolve. - - - - - Name this resolver will resolve. - - - - - An implementation of that resolves to - to an array populated with the values that result from resolving other instances - of . - - - - - Create an instance of - with the given type and a collection of - instances to use when populating the result. - - The type. - The resolver policies to use when populating an array. - - - - Resolve the value for a dependency. - - Current build context. - An array pupulated with the results of resolving the resolver policies. - - - - An implementation of that selects - the given constructor and creates the appropriate resolvers to call it with - the specified parameters. - - - - - Create an instance of that - will return the given constructor, being passed the given injection values - as parameters. - - The constructor to call. - Set of objects - that describes how to obtain the values for the constructor parameters. - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - Helper class for implementing selector policies that need to - set up dependency resolver policies. - - - - - Add dependency resolvers to the parameter set. - - Type that's currently being built (used to resolve open generics). - PolicyList to add the resolvers to. - Objects supplying the dependency resolvers. - Result object to store the keys in. - - - - A implementation that calls the specific - methods with the given parameters. - - - - - Add the given method and parameter collection to the list of methods - that will be returned when the selector's - method is called. - - Method to call. - sequence of objects - that describe how to create the method parameter values. - - - - Return the sequence of methods to call while building the target object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of methods to call. - - - - An implemnetation of which returns - the set of specific properties that the selector was configured with. - - - - - Add a property that will be par of the set returned when the - is called. - - The property to set. - object describing - how to create the value to inject. - - - - Returns sequence of properties on the given type that - should be set as part of building that object. - - Current build context. - The to add any - generated resolver objects into. - Sequence of objects - that contain the properties to set. - - - - The build stages we use in the Unity container - strategy pipeline. - - - - - First stage. By default, nothing happens here. - - - - - Second stage. Type mapping occurs here. - - - - - Third stage. lifetime managers are checked here, - and if they're available the rest of the pipeline is skipped. - - - - - Fourth stage. Reflection over constructors, properties, etc. is - performed here. - - - - - Fifth stage. Instance creation happens here. - - - - - Sixth stage. Property sets and method injection happens here. - - - - - Seventh and final stage. By default, nothing happens here. - - - - - Represents the context in which a build-up or tear-down operation runs. - - - - - Represents the context in which a build-up or tear-down operation runs. - - - - - Add a new set of resolver override objects to the current build operation. - - objects to add. - - - - Get a object for the given - or null if that dependency hasn't been overridden. - - Type of the dependency. - Resolver to use, or null if no override matches for the current operation. - - - - A convenience method to do a new buildup operation on an existing context. - - Key to use to build up. - Created object. - - - - A convenience method to do a new buildup operation on an existing context. This - overload allows you to specify extra policies which will be in effect for the duration - of the build. - - Key defining what to build up. - A delegate that takes a . This - is invoked with the new child context before the build up process starts. This gives callers - the opportunity to customize the context for the build process. - Created object. - - - - Gets the head of the strategy chain. - - - The strategy that's first in the chain; returns null if there are no - strategies in the chain. - - - - - Gets the associated with the build. - - - The associated with the build. - - - - - Gets the original build key for the build operation. - - - The original build key for the build operation. - - - - - Get the current build key for the current build operation. - - - - - The set of policies that were passed into this context. - - This returns the policies passed into the context. - Policies added here will remain after buildup completes. - The persistent policies for the current context. - - - - Gets the policies for the current context. - - Any policies added to this object are transient - and will be erased at the end of the buildup. - - The policies for the current context. - - - - - Gets the collection of objects - that need to execute in event of an exception. - - - - - The current object being built up or torn down. - - - The current object being manipulated by the build operation. May - be null if the object hasn't been created yet. - - - - Flag indicating if the build operation should continue. - - true means that building should not call any more - strategies, false means continue to the next strategy. - - - - An object representing what is currently being done in the - build chain. Used to report back errors if there's a failure. - - - - - The build context used to resolve a dependency during the build operation represented by this context. - - - - - Initialize a new instance of the class. - - - - - Initialize a new instance of the class with a , - , and the - build key used to start this build operation. - - The to use for this context. - The to use for this context. - The to use for this context. - Build key to start building. - The existing object to build up. - - - - Create a new using the explicitly provided - values. - - The to use for this context. - The to use for this context. - The set of persistent policies to use for this context. - The set of transient policies to use for this context. It is - the caller's responsibility to ensure that the transient and persistent policies are properly - combined. - Build key for this context. - Existing object to build up. - - - - Add a new set of resolver override objects to the current build operation. - - objects to add. - - - - Get a object for the given - or null if that dependency hasn't been overridden. - - Type of the dependency. - Resolver to use, or null if no override matches for the current operation. - - - - A convenience method to do a new buildup operation on an existing context. - - Key to use to build up. - Created object. - - - - A convenience method to do a new buildup operation on an existing context. This - overload allows you to specify extra policies which will be in effect for the duration - of the build. - - Key defining what to build up. - A delegate that takes a . This - is invoked with the new child context before the build up process starts. This gives callers - the opportunity to customize the context for the build process. - Created object. - - - - Gets the head of the strategy chain. - - - The strategy that's first in the chain; returns null if there are no - strategies in the chain. - - - - - Get the current build key for the current build operation. - - - - - The current object being built up or torn down. - - - The current object being manipulated by the build operation. May - be null if the object hasn't been created yet. - - - - Gets the associated with the build. - - - The associated with the build. - - - - - Gets the original build key for the build operation. - - - The original build key for the build operation. - - - - - The set of policies that were passed into this context. - - This returns the policies passed into the context. - Policies added here will remain after buildup completes. - The persistent policies for the current context. - - - - Gets the policies for the current context. - - - Any modifications will be transient (meaning, they will be forgotten when - the outer BuildUp for this context is finished executing). - - - The policies for the current context. - - - - - Gets the collection of objects - that need to execute in event of an exception. - - - - - Flag indicating if the build operation should continue. - - true means that building should not call any more - strategies, false means continue to the next strategy. - - - - An object representing what is currently being done in the - build chain. Used to report back errors if there's a failure. - - - - - The build context used to resolve a dependency during the build operation represented by this context. - - - - - Represents that a dependency could not be resolved. - - - - - Initializes a new instance of the class with no extra information. - - - - - Initializes a new instance of the class with the given message. - - Some random message. - - - - Initialize a new instance of the class with the given - message and inner exception. - - Some random message - Inner exception. - - - - Initializes a new instance of the class with the build key of the object begin built. - - The build key of the object begin built. - - - - The exception thrown when injection is attempted on a method - that is an open generic or has out or ref params. - - - - - Construct a new with no - message. - - - - - Construct a with the given message - - Message to return. - - - - Construct a with the given message - and inner exception. - - Message to return. - Inner exception - - - - Extension methods to provide convenience overloads over the - interface. - - - - - Start a recursive build up operation to retrieve the default - value for the given type. - - Type of object to build. - Parent context. - Resulting object. - - - - Start a recursive build up operation to retrieve the named - implementation for the given type. - - Type to resolve. - Parent context. - Name to resolve with. - The resulting object. - - - - Add a set of s to the context, specified as a - variable argument list. - - Context to add overrides to. - The overrides. - - - - Data structure that stores the set of - objects and executes them when requested. - - - - - Add a new object to this - list. - - Object to add. - - - - Execute the method - of everything in the recovery list. Recoveries will execute - in the opposite order of add - it's a stack. - - - - - Return the number of recovery objects currently in the stack. - - - - - Represents a lifetime container. - - - A lifetime container tracks the lifetime of an object, and implements - IDisposable. When the container is disposed, any objects in the - container which implement IDisposable are also disposed. - - - - - Adds an object to the lifetime container. - - The item to be added to the lifetime container. - - - - Determine if a given object is in the lifetime container. - - - The item to locate in the lifetime container. - - - Returns true if the object is contained in the lifetime - container; returns false otherwise. - - - - - Removes an item from the lifetime container. The item is - not disposed. - - The item to be removed. - - - - Gets the number of references in the lifetime container - - - The number of references in the lifetime container - - - - - Represents a lifetime container. - - - A lifetime container tracks the lifetime of an object, and implements - IDisposable. When the container is disposed, any objects in the - container which implement IDisposable are also disposed. - - - - - Adds an object to the lifetime container. - - The item to be added to the lifetime container. - - - - Determine if a given object is in the lifetime container. - - - The item to locate in the lifetime container. - - - Returns true if the object is contained in the lifetime - container; returns false otherwise. - - - - - Releases the resources used by the . - - - - - Releases the managed resources used by the DbDataReader and optionally releases the unmanaged resources. - - - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - - Returns an enumerator that iterates through the lifetime container. - - - An object that can be used to iterate through the life time container. - - - - - Returns an enumerator that iterates through the lifetime container. - - - An object that can be used to iterate through the life time container. - - - - - Removes an item from the lifetime container. The item is - not disposed. - - The item to be removed. - - - - Gets the number of references in the lifetime container - - - The number of references in the lifetime container - - - - - A custom collection over objects. - - - - - Removes an individual policy type for a build key. - - The type of policy to remove. - The key the policy applies. - - - - Removes all policies from the list. - - - - - Removes a default policy. - - The type the policy was registered as. - - - - Gets an individual policy. - - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - The key the policy applies to. - True if the search should be in the local policy list only; otherwise false to search up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list if present; returns null otherwise. - - - - Sets an individual policy. - - The of the policy. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - The default policy to be registered. - - - - A custom collection wrapper over objects. - - - - - Initialize a new instance of a class. - - - - - Initialize a new instance of a class with another policy list. - - An inner policy list to search. - - - - Removes an individual policy type for a build key. - - The type of policy to remove. - The key the policy applies. - - - - Removes all policies from the list. - - - - - Removes a default policy. - - The type the policy was registered as. - - - - Gets an individual policy. - - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - The key the policy applies to. - True if the search should be in the local policy list only; otherwise false to search up the parent chain. - The policy list in the chain that the searched for policy was found in, null if the policy was - not found. - The policy in the list if present; returns null otherwise. - - - - Sets an individual policy. - - The of the policy. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - The default policy to be registered. - - - - Gets the number of items in the locator. - - - The number of items in the locator. - - - - - Extension methods on to provide convenience - overloads (generic versions, mostly). - - - - - Removes an individual policy type for a build key. - - The type the policy was registered as. - to remove the policy from. - The key the policy applies. - - - - Removes a default policy. - - The type the policy was registered as. - to remove the policy from. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Gets an individual policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - The interface the policy is registered under. - to search. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy list that actually contains the returned policy. - The policy in the list, if present; returns null otherwise. - - - - Get the non default policy. - - to search. - The interface the policy is registered under. - The key the policy applies. - true if the policy searches local only; otherwise false to seach up the parent chain. - The policy in the list, if present; returns null otherwise. - - - - Sets an individual policy. - - The interface the policy is registered under. - to add the policy to. - The policy to be registered. - The key the policy applies. - - - - Sets a default policy. When checking for a policy, if no specific individual policy - is available, the default will be used. - - The interface to register the policy under. - to add the policy to. - The default policy to be registered. - - - - An implementation of . - - - - - Add a new object to this - list. - - Object to add. - - - - Execute the method - of everything in the recovery list. Recoveries will execute - in the opposite order of add - it's a stack. - - - - - Return the number of recovery objects currently in the stack. - - - - - Implementation of which will notify an object about - the completion of a BuildUp operation, or start of a TearDown operation. - - - This strategy checks the object that is passing through the builder chain to see if it - implements IBuilderAware and if it does, it will call - and . This strategy is meant to be used from the - stage. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a teardown operation. The - PreTearDown method is called when the chain is being executed in the - forward direction. - - Context of the teardown operation. - - - - Implemented on a class when it wants to receive notifications - about the build process. - - - - - Called by the when the object is being built up. - - The key of the object that was just built up. - - - - Called by the when the object is being torn down. - - - - - Enumeration to represent the object builder stages. - - - The order of the values in the enumeration is the order in which the stages are run. - - - - - Strategies in this stage run before creation. Typical work done in this stage might - include strategies that use reflection to set policies into the context that other - strategies would later use. - - - - - Strategies in this stage create objects. Typically you will only have a single policy-driven - creation strategy in this stage. - - - - - Strategies in this stage work on created objects. Typical work done in this stage might - include setter injection and method calls. - - - - - Strategies in this stage work on objects that are already initialized. Typical work done in - this stage might include looking to see if the object implements some notification interface - to discover when its initialization stage has been completed. - - - - - Represents a builder policy for mapping build keys. - - - - - Represents a builder policy for mapping build keys. - - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping. This parameter can be null - (called when getting container registrations). - The new build key. - - - - Initialize a new instance of the with the new build key. - - The new build key. - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping, unused in this implementation. - The new build key. - - - - Represents a strategy for mapping build keys in the build up operation. - - - - - Called during the chain of responsibility for a build operation. Looks for the - and if found maps the build key for the current operation. - - The context for the operation. - - - - An implementation of that can map - generic types. - - - - - Create a new instance - that will map generic types. - - Build key to map to. This must be or contain an open generic type. - - - - Maps the build key. - - The build key to map. - Current build context. Used for contextual information - if writing a more sophisticated mapping. - The new build key. - - - - Base class for the current operation stored in the build context. - - - - - Create a new . - - Type currently being built. - - - - The type that's currently being built. - - - - - A that will look for a build plan - in the current context. If it exists, it invokes it, otherwise - it creates one and stores it for later, and invokes it. - - - - - Called during the chain of responsibility for a build operation. - - The context for the operation. - - - - An implementation of that chooses - constructors based on these criteria: first, pick a constructor marked with the - attribute. If there - isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, - then throw. - - Thrown when the constructor to choose is ambiguous. - Attribute used to mark the constructor to call. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Objects of this type are the return value from . - It encapsulates the desired with the string keys - needed to look up the for each - parameter. - - - - - Base class for return values from selector policies that - return a memberinfo of some sort plus a list of parameter - keys to look up the parameter resolvers. - - - - - Base class for return of selector policies that need - to keep track of a set of parameter keys. - - - - - Add a new parameter key to this object. Keys are assumed - to be in the order of the parameters to the constructor. - - Key for the next parameter to look up. - - - - The set of keys for the constructor parameters. - - - - - Construct a new , storing - the given member info. - - Member info to store. - - - - The member info stored. - - - - - Create a new instance which - contains the given constructor. - - The constructor to wrap. - - - - The constructor this object wraps. - - - - - Create a object used to host the - dynamically generated build plan. This class creates the - dynamic method in the anonymous hosting assembly provided by - the Silverlight runtime. - - - - - This interface defines a policy that manages creation of the dynamic methods - used by the ObjectBuilder code generation. This way, we can replace the details - of how the dynamic method is created to handle differences in CLR (like Silverlight - vs desktop) or security policies. - - - - - Create a builder method for the given type, using the given name. - - Type that will be built by the generated method. - Name to give to the method. - A object with the proper signature to use - as part of a build plan. - - - - Create a builder method for the given type, using the given name. - - Type that will be built by the generated method. - Name to give to the method. - A object with the proper signature to use - as part of a build plan. - - - - This class records the information about which constructor argument is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - The type that is being constructed. - A string representing the constructor being called. - Parameter being resolved. - - - - Generate the string describing what parameter was being resolved. - - The description string. - - - - String describing the constructor being set up. - - - - - Parameter that's being resolved. - - - - - A that emits IL to call constructors - as part of creating a build plan. - - - - - Called during the chain of responsibility for a build operation. - - Existing object is an instance of . - The context for the operation. - - - - A helper method used by the generated IL to throw an exception if - a dependency cannot be resolved. - - The currently being - used for the build of this object. - - - - A helper method used by the generated IL to throw an exception if - a dependency cannot be resolved because of an invalid constructor. - - The currently being - used for the build of this object. - The signature of the invalid constructor. - - - - A helper method used by the generated IL to throw an exception if - no existing object is present, but the user is attempting to build - an interface (usually due to the lack of a type mapping). - - The currently being - used for the build of this object. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager - if the current object is such. - - Current build context. - - - - A class that records that a constructor is about to be call, and is - responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Generate the description string. - - The string. - - - - Constructor we're trying to call. - - - - - This object tracks the current state of the build plan generation, - accumulates the IL, provides the preamble & postamble for the dynamic - method, and tracks things like local variables in the generated IL - so that they can be reused across IL generation strategies. - - - - - Create a that is initialized - to handle creation of a dynamic method to build the given type. - - Type that we're trying to create a build plan for. - An object that actually - creates our object. - - - - Completes generation of the dynamic method and returns the - generated dynamic method delegate. - - The created - - - - Emit the IL to put the build context on top of the IL stack. - - - - - Emit the IL to put the current build key on top of the IL stack. - - - - - Emit the IL to put the current "existing" object on the top of the IL stack. - - - - - Emit the IL to make the top of the IL stack our current "existing" object. - - - - - Emit the IL to load the given object onto the top of the IL stack. - - Type to load on the stack. - - - - Emit the IL needed to look up an and - call it to get a value. - - Type of the dependency to resolve. - Key to look up the policy by. - - - - Emit the IL needed to clear the . - - - - - Emit the IL needed to either cast the top of the stack to the target type - or unbox it, if it's a value type. - - Type to convert the top of the stack to. - - - - A helper method used by the generated IL to clear the current operation in the build context. - - - - - Helper method used by generated IL to look up a dependency resolver based on the given key. - - Current build context. - Type of the dependency being resolved. - Key the resolver was stored under. - The found dependency resolver. - - - - A reflection helper method to make it easier to grab a property getter - for the given property. - - Type that implements the property we want. - Type of the property. - Name of the property. - The property getter's . - - - - A reflection helper method that makes it easier to grab a - for a method. - - Type that implements the method we want. - Name of the method. - Types of arguments to the method. - The method's . - - - - The underlying that can be used to - emit IL into the generated dynamic method. - - - - - The type we're currently creating the method to build. - - - - - A delegate type that defines the signature of the - dynamic method created by the build plans. - - used to build up the object. - - - - An implementation of that runs the - given delegate to execute the plan. - - - - - A build plan is an object that, when invoked, will create a new object - or fill in a given existing one. It encapsulates all the information - gathered by the strategies to construct a particular object. - - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - An implementation - that constructs a build plan via dynamic IL emission. - - - - - A that can create and return an - for the given build key. - - - - - Create a build plan using the given context and build key. - - Current build context. - Current build key. - The build plan. - - - - Construct a that - uses the given strategy chain to construct the build plan. - - The strategy chain. - - - - Construct a build plan. - - The current build context. - The current build key. - The created build plan. - - - - A that generates IL to call - chosen methods (as specified by the current ) - as part of object build up. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A class that records that a constructor is about to be call, and is - responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Generate the description string. - - The string. - - - - Method we're trying to call. - - - - - This class records the information about which constructor argument is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - The type that is being constructed. - A string representing the method being called. - Parameter being resolved. - - - - Generate the string describing what parameter was being resolved. - - The description string. - - - - String describing the method being set up. - - - - - Parameter that's being resolved. - - - - - A that generates IL to resolve properties - on an object being built. - - - - - Called during the chain of responsibility for a build operation. - - The context for the operation. - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A helper method used by the generated IL to store the current operation in the build context. - - - - - A base class that holds the information shared by all operations - performed by the container while setting properties. - - - - - Initializes a new instance of the class. - - - - - Generate the description of this operation. - - The string. - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - The property value currently being resolved. - - - - - This class records the information about which property value is currently - being resolved, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - This class records the information about which property value is currently - being set, and is responsible for generating the error string required when - an error has occurred. - - - - - Initializes a new instance of the class. - - Type property is on. - Name of property being set. - - - - Get a format string used to create the description. Called by - the base method. - - The format string. - - - - Build plan for that will - return a func that will resolve the requested type - through this container later. - - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - An implementation of that selects - methods by looking for the given - attribute on those methods. - - Type of attribute used to mark methods - to inject. - - - - Create a instance for the given - . - - Parameter to create the resolver for. - The resolver object. - - - - Objects of this type are the return value from . - It encapsulates the desired with the string keys - needed to look up the for each - parameter. - - - - - Create a new instance which - contains the given method. - - The method - - - - The constructor this object wraps. - - - - - Creates an instance of this build plan's type, or fills - in the existing type if passed in. - - Context used to build up the object. - - - - An implementation of that looks - for properties marked with the - attribute that are also settable and not indexers. - - - - - - Create a for the given - property. - - Property to create resolver for. - The resolver object. - - - - Objects of this type are returned from - . - This class combines the about - the property with the string key used to look up the resolver - for this property's value. - - - - - Create an instance of - with the given and key. - - The property. - Key to use to look up the resolver. - - - - PropertyInfo for this property. - - - - - Key to look up this property's resolver. - - - - - Implementation of . - - - - - A builder policy that lets you keep track of the current - resolvers and will remove them from the given policy set. - - - - - Add a new resolver to track by key. - - Key that was used to add the resolver to the policy set. - - - - Remove the currently tracked resolvers from the given policy list. - - Policy list to remove the resolvers from. - - - - Add a new resolver to track by key. - - Key that was used to add the resolver to the policy set. - - - - Remove the currently tracked resolvers from the given policy list. - - Policy list to remove the resolvers from. - - - - Get an instance that implements , - either the current one in the policy set or creating a new one if it doesn't - exist. - - Policy list to look up from. - Build key to track. - The resolver tracker. - - - - Add a key to be tracked to the current tracker. - - Policy list containing the resolvers and trackers. - Build key for the resolvers being tracked. - Key for the resolver. - - - - Remove the resolvers for the given build key. - - Policy list containing the build key. - Build key. - - - - An implementation of that - calls back into the build chain to build up the dependency, passing - a type given at compile time as its build key. - - - - - Create a new instance storing the given type. - - Type to resolve. - - - - Get the value for a dependency. - - Current build context. - The value for the dependency. - - - - This interface defines a standard method to convert any - regardless - of the stage enum into a regular, flat strategy chain. - - - - - Convert this into - a flat . - - The flattened . - - - - Represents a chain of responsibility for builder strategies. - - - - - Reverse the order of the strategy chain. - - The reversed strategy chain. - - - - Execute this strategy chain against the given context, - calling the Buildup methods on the strategies. - - Context for the build process. - The build up object - - - - Execute this strategy chain against the given context, - calling the TearDown methods on the strategies. - - Context for the teardown process. - - - - An implementation that uses - a to figure out if an object - has already been created and to update or remove that - object from some backing store. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - A that stores objects in the locator and - lifetime container provided by the context. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - A method that does whatever is needed to clean up - as part of cleaning up after an exception. - - - Don't do anything that could throw in this method, - it will cause later recover operations to get skipped - and play real havok with the stack trace. - - - - - An implementation of that does nothing, - ensuring that a new object gets created every time. - - - - - Retrieve a value from the backing store associated with this Lifetime policy. - - the object desired, or null if no such object is currently stored. - - - - Stores the given value into backing store for retrieval later. - - The object being stored. - - - - Remove the given object from backing store. - - - - - Represents a chain of responsibility for builder strategies partitioned by stages. - - The stage enumeration to partition the strategies. - - - - Initialize a new instance of the class. - - - - - Initialize a new instance of the class with an inner strategy chain to use when building. - - The inner strategy chain to use first when finding strategies in the build operation. - - - - Adds a strategy to the chain at a particular stage. - - The strategy to add to the chain. - The stage to add the strategy. - - - - Add a new strategy for the . - - The of - The stage to add the strategy. - - - - Clear the current strategy chain list. - - - This will not clear the inner strategy chain if this instane was created with one. - - - - - Makes a strategy chain based on this instance. - - A new . - - - - Represents a chain of responsibility for builder strategies. - - - - - Initialzie a new instance of the class. - - - - - Initialzie a new instance of the class with a colleciton of strategies. - - A collection of strategies to initialize the chain. - - - - Adds a strategy to the chain. - - The strategy to add to the chain. - - - - Adds strategies to the chain. - - The strategies to add to the chain. - - - - Reverse the order of the strategy chain. - - The reversed strategy chain. - - - - Execute this strategy chain against the given context to build up. - - Context for the build processes. - The build up object - - - - Execute this strategy chain against the given context, - calling the TearDown methods on the strategies. - - Context for the teardown process. - - - - Returns an enumerator that iterates through the collection. - - - - A that can be used to iterate through the collection. - - 1 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - The almost inevitable collection of extra helper methods on - to augment the rich set of what - Linq already gives us. - - - - - Execute the provided on every item in . - - Type of the items stored in - Sequence of items to process. - Code to run over each item. - - - - Create a single string from a sequenc of items, separated by the provided , - and with the conversion to string done by the given . - - This method does basically the same thing as , - but will work on any sequence of items, not just arrays. - Type of items in the sequence. - Sequence of items to convert. - Separator to place between the items in the string. - The conversion function to change TItem -> string. - The resulting string. - - - - Create a single string from a sequenc of items, separated by the provided , - and with the conversion to string done by the item's method. - - This method does basically the same thing as , - but will work on any sequence of items, not just arrays. - Type of items in the sequence. - Sequence of items to convert. - Separator to place between the items in the string. - The resulting string. - - - - Build key used to combine a type object with a string name. Used by - ObjectBuilder to indicate exactly what is being built. - - - - - Create a new instance with the given - type and name. - - to build. - Key to use to look up type mappings and singletons. - - - - Create a new instance for the default - buildup of the given type. - - to build. - - - - This helper method creates a new instance. It is - initialized for the default key for the given type. - - Type to build. - A new instance. - - - - This helper method creates a new instance for - the given type and key. - - Type to build - Key to use to look up type mappings and singletons. - A new instance initialized with the given type and name. - - - - Compare two instances. - - Two instances compare equal - if they contain the same name and the same type. Also, comparing - against a different type will also return false. - Object to compare to. - True if the two keys are equal, false if not. - - - - Calculate a hash code for this instance. - - A hash code. - - - - Compare two instances for equality. - - Two instances compare equal - if they contain the same name and the same type. - First of the two keys to compare. - Second of the two keys to compare. - True if the values of the keys are the same, else false. - - - - Compare two instances for inequality. - - Two instances compare equal - if they contain the same name and the same type. If either field differs - the keys are not equal. - First of the two keys to compare. - Second of the two keys to compare. - false if the values of the keys are the same, else true. - - - - Formats the build key as a string (primarily for debugging). - - A readable string representation of the build key. - - - - Return the stored in this build key. - - The type to build. - - - - Returns the name stored in this build key. - - The name to use when building. - - - - A generic version of so that - you can new up a key using generic syntax. - - Type for the key. - - - - Construct a new that - specifies the given type. - - - - - Construct a new that - specifies the given type and name. - - Name for the key. - - - - A series of helper methods to deal with sequences - - objects that implement . - - - - - A function that turns an arbitrary parameter list into an - . - - Type of arguments. - The items to put into the collection. - An array that contains the values of the . - - - - Given two sequences, return a new sequence containing the corresponding values - from each one. - - Type of first sequence. - Type of second sequence. - First sequence of items. - Second sequence of items. - New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. - - - - A class that lets you - override a named parameter passed to a constructor. - - - - - Construct a new object that will - override the given named constructor parameter, and pass the given - value. - - Name of the constructor parameter. - Value to pass for the constructor. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience form of that lets you - specify multiple parameter overrides in one shot rather than having - to construct multiple objects. - - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. - - - - - Looks up a localized string similar to The provided string argument must not be empty.. - - - - - Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). - - - - - Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. - - - - - Looks up a localized string similar to Cannot extract type from build key {0}.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. - - - - - Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. - - - - - Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. - - - - - Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. - - - - - Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. - - - - - Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. - - - - - Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. - - - - - Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. - - - - - Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. - - - - - Looks up a localized string similar to Calling constructor {0}. - - - - - Looks up a localized string similar to Calling method {0}.{1}. - - - - - Looks up a localized string similar to An item with the given key is already present in the dictionary.. - - - - - Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. - - - - - Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. - - - - - Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. - - - - - Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . - - - - - Looks up a localized string similar to Could not resolve dependency for build key {0}.. - - - - - Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. - - - - - Looks up a localized string similar to The supplied type {0} must be an open generic type.. - - - - - Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. - - - - - Looks up a localized string similar to The type {0} does not have an accessible constructor.. - - - - - Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". - - - - - Looks up a localized string similar to while resolving. - - - - - Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. - - - - - Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. - - - - - Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. - - - - - Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. - - - - - Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. - - - - - Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. - - - - - Looks up a localized string similar to The property {0} on type {1} is not settable.. - - - - - Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. - - - - - Looks up a localized string similar to The value for the property "{0}" could not be resolved.. - - - - - Looks up a localized string similar to The provided string argument must not be empty.. - - - - - Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". - Exception occurred while: {2}. - Exception is: {3} - {4} - ----------------------------------------------- - At the time of the exception, the container was: - . - - - - - Looks up a localized string similar to Resolving {0},{1}. - - - - - Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). - - - - - Looks up a localized string similar to Resolving value for property {0}.{1}. - - - - - Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. - - - - - Looks up a localized string similar to Setting value for property {0}.{1}. - - - - - Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. - - - - - Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. - - - - - Looks up a localized string similar to <unknown>. - - - - - A that lets you override - the value for a specified property. - - - - - Create an instance of . - - The property name. - Value to use for the property. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience form of that lets you - specify multiple property overrides in one shot rather than having - to construct multiple objects. - - - - - When implemented in derived classes, this method is called from the - method to create the actual objects. - - Key value to create the resolver. - Value to store in the resolver. - The created . - - - - The exception thrown by the Unity container when - an attempt to resolve a dependency fails. - - - - - Create a new that records - the exception for the given type and name. - - Type requested from the container. - Name requested from the container. - The actual exception that caused the failure of the build. - The build context representing the failed operation. - - - - The type that was being requested from the container at the time of failure. - - - - - The name that was being requested from the container at the time of failure. - - - - - Interface defining the configuration interface exposed by the - Static Factory extension. - - - - - Register the given factory delegate to be called when the container is - asked to resolve . - - Type that will be requested from the container. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - Register the given factory delegate to be called when the container is - asked to resolve and . - - Type that will be requested from the container. - The name that will be used when requesting to resolve this type. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - A that lets you register a - delegate with the container to create an object, rather than calling - the object's constructor. - - - - - Initialize this extension. This particular extension requires no - initialization work. - - - - - Register the given factory delegate to be called when the container is - asked to resolve and . - - Type that will be requested from the container. - The name that will be used when requesting to resolve this type. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - Register the given factory delegate to be called when the container is - asked to resolve . - - Type that will be requested from the container. - Delegate to invoke to create the instance. - The container extension object this method was invoked on. - - - - An implementation of that - acts as a decorator over another . - This checks to see if the current type being built is the - right one before checking the inner . - - - - - Create an instance of - - Type to check for. - Inner override to check after type matches. - - - - Return a that can be used to give a value - for the given desired dependency. - - Current build context. - Type of dependency desired. - a object if this override applies, null if not. - - - - A convenience version of that lets you - specify the type to construct via generics syntax. - - Type to check for. - - - - Create an instance of . - - Inner override to check after type matches. - - - - A simple, extensible dependency injection container. - - - - - Create a default . - - - - - Create a with the given parent container. - - The parent . The current object - will apply its own settings first, and then check the parent for additional ones. - - - - RegisterType a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - RegisterType an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - - If true, the container will take over the lifetime of the instance, - calling Dispose on it (if it's ) when the container is Disposed. - - If false, container will not maintain a strong reference to . User is reponsible - for disposing instance, and for keeping the instance from being garbage collected. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Get an instance of the requested type with the given name from the container. - - of object to get from the container. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container, and clean it up. - - The object to tear down. - - - - Add an extension object to the container. - - to add. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Get access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - of configuration interface required. - The requested extension's configuration interface, or null if not found. - - - - Remove all installed extensions from this container. - - - - This method removes all extensions from the container, including the default ones - that implement the out-of-the-box behavior. After this method, if you want to use - the container again you will need to either readd the default extensions or replace - them with your own. - - - The registered instances and singletons that have already been set up in this container - do not get removed. - - - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Create a child container. - - - A child container shares the parent's configuration, but can be configured with different - settings or lifetime. - The new child container. - - - - Dispose this container instance. - - - Disposing the container also disposes any child containers, - and disposes any instances whose lifetimes are managed - by the container. - - - - - Dispose this container instance. - - - This class doesn't have a finalizer, so will always be true. - True if being called from the IDisposable.Dispose - method, false if being called from a finalizer. - - - - Remove policies associated with building this type. This removes the - compiled build plan so that it can be rebuilt with the new settings - the next time this type is resolved. - - Type of object to clear the plan for. - Name the object is being registered with. - - - - The parent of this container. - - The parent container, or null if this container doesn't have one. - - - - Get a sequence of that describe the current state - of the container. - - - - - Implementation of the ExtensionContext that is actually used - by the UnityContainer implementation. - - - This is a nested class so that it can access state in the - container that would otherwise be inaccessible. - - - - - This event is raised when the method, - or one of its overloads, is called. - - - - - Extension class that adds a set of convenience overloads to the - interface. - - - - - Register a type with specific members to be injected. - - Type this registration is for. - Container to configure. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - - This overload registers a default mapping and transient lifetime. - - - that will be requested. - that will actually be returned. - Container to configure. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Container to configure. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - that will be requested. - that will actually be returned. - Container to configure. - Name of this mapping. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - that will be requested. - that will actually be returned. - Container to configure. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type with the container. - No type mapping is performed for this type. - - The type to apply the to. - Container to configure. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type with the container. - No type mapping is performed for this type. - - The type to configure injection on. - Container to configure. - Name that will be used to request the type. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - The type to apply the to. - Container to configure. - Name that will be used to request the type. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type with specific members to be injected. - - Container to configure. - Type this registration is for. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - - This overload registers a default mapping. - - - Container to configure. - that will be requested. - that will actually be returned. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container. - - - This method is used to tell the container that when asked for type , - actually return an instance of type . This is very useful for - getting instances of interfaces. - - Container to configure. - that will be requested. - that will actually be returned. - Name to use for registration, null if a default registration. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a type mapping with the container, where the created instances will use - the given . - - Container to configure. - that will be requested. - that will actually be returned. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to apply the to. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to configure in the container. - Name to use for registration, null if a default registration. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register a for the given type and name with the container. - No type mapping is performed for this type. - - Container to configure. - The to apply the to. - Name to use for registration, null if a default registration. - The that controls the lifetime - of the returned instance. - Injection configuration objects. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration and has the container take over the lifetime of the instance. - - Type of instance to register (may be an implemented interface instead of the full type). - Container to configure. - Object to returned. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration (name = null). - - - Type of instance to register (may be an implemented interface instead of the full type). - Container to configure. - Object to returned. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload automatically has the container take ownership of the . - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Container to configure. - Name for registration. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Container to configure. - Name for registration. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration and has the container take over the lifetime of the instance. - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload does a default registration (name = null). - - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - - object that controls how this instance will be managed by the container. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Register an instance with the container. - - - - Instance registration is much like setting a type as a singleton, except that instead - of the container creating the instance the first time it is requested, the user - creates the instance ahead of type and adds that instance to the container. - - - This overload automatically has the container take ownership of the . - - Container to configure. - Type of instance to register (may be an implemented interface instead of the full type). - Object to returned. - Name for registration. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve an instance of the default requested type from the container. - - of object to get from the container. - Container to resolve from. - Any overrides for the resolve call. - The retrieved object. - - - - Resolve an instance of the requested type with the given name from the container. - - of object to get from the container. - Container to resolve from. - Name of the object to retrieve. - Any overrides for the resolve call. - The retrieved object. - - - - Resolve an instance of the default requested type from the container. - - Container to resolve from. - of object to get from the container. - Any overrides for the resolve call. - The retrieved object. - - - - Return instances of all registered types requested. - - - - This method is useful if you've registered multiple types with the same - but different names. - - - Be aware that this method does NOT return an instance for the default (unnamed) registration. - - - The type requested. - Container to resolve from. - Any overrides for the resolve calls. - Set of objects of type . - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - - This overload uses the default registrations. - - - of object to perform injection on. - Container to resolve through. - Instance to build up. - Any overrides for the buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - of object to perform injection on. - Conatiner to resolve through. - Instance to build up. - name to use when looking up the typemappings and other configurations. - Any overrides for the Buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Run an existing object through the container and perform injection on it. - - - - This method is useful when you don't control the construction of an - instance (ASP.NET pages or objects created via XAML, for instance) - but you still want properties and other injection performed. - - - This overload uses the default registrations. - - - Container to resolve through. - of object to perform injection on. - Instance to build up. - Any overrides for the Buildup. - The resulting object. By default, this will be , but - container extensions may add things like automatic proxy creation which would - cause this to return a different object (but still type compatible with ). - - - - Creates a new extension object and adds it to the container. - - Type of to add. The extension type - will be resolved from within the supplied . - Container to add the extension to. - The object that this method was called on (this in C#, Me in Visual Basic). - - - - Resolve access to a configuration interface exposed by an extension. - - Extensions can expose configuration interfaces as well as adding - strategies and policies to the container. This method walks the list of - added extensions and returns the first one that implements the requested type. - - The configuration interface required. - Container to configure. - The requested extension's configuration interface, or null if not found. - - - - Check if a particular type has been registered with the container with - the default name. - - Container to inspect. - Type to check registration for. - True if this type has been registered, false if not. - - - - Check if a particular type/name pair has been registered with the container. - - Container to inspect. - Type to check registration for. - Name to check registration for. - True if this type/name pair has been registered, false if not. - - - - Check if a particular type has been registered with the container with the default name. - - Type to check registration for. - Container to inspect. - True if this type has been registered, false if not. - - - - Check if a particular type/name pair has been registered with the container. - - Type to check registration for. - Container to inspect. - Name to check registration for. - True if this type/name pair has been registered, false if not. - - - - This extension supplies the default behavior of the UnityContainer API - by handling the context events and setting policies. - - - - - Install the default container behavior into the container. - - - - - Remove the default behavior from the container. - - - - - This extension installs the default strategies and policies into the container - to implement the standard behavior of the Unity container. - - - This extension installs the default strategies and policies into the container - to implement the standard behavior of the Unity container. - - - - - Add the default ObjectBuilder strategies & policies to the container. - - - - - Add the correct to the policy - set. This version adds the appropriate policy for running on the desktop CLR. - - - - - An implementation of that wraps a Unity container. - - - - - Initializes a new instance of the class for a container. - - The to wrap with the - interface implementation. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - When implemented by inheriting classes, this method will do the actual work of resolving - the requested service instance. - - Type of instance requested.Name of registered service you want. May be null. - - The requested service instance. - - - - - When implemented by inheriting classes, this method will do the actual work of - resolving all the requested service instances. - - Type of service requested. - - Sequence of service instance objects. - - - - - A static helper class that includes various parameter checking routines. - - - - - Throws if the given argument is null. - - if tested value if null. - Argument value to test. - Name of the argument being tested. - - - - Throws an exception if the tested string argument is null or the empty string. - - Thrown if string value is null. - Thrown if the string is empty - Argument value to check. - Name of argument being checked. - - - - Verifies that an argument type is assignable from the provided type (meaning - interfaces are implemented, or classes exist in the base class hierarchy). - - The argument type that will be assigned to. - The type of the value being assigned. - Argument name. - - - - Verifies that an argument instance is assignable from the provided type (meaning - interfaces are implemented, or classes exist in the base class hierarchy, or instance can be - assigned through a runtime wrapper, as is the case for COM Objects). - - The argument type that will be assigned to. - The instance that will be assigned. - Argument name. - - - - Helper class to wrap common reflection stuff dealing with - methods. - - - - - Create a new instance that - lets us do more reflection stuff on that method. - - The method to reflect on. - - - - Given our set of generic type arguments, - - The generic type arguments. - An array with closed parameter types. - - - - Returns true if any of the parameters of this method - are open generics. - - - - - Return the of each parameter for this - method. - - Sequence of objects, one for - each parameter in order. - - - - A helper class that encapsulates two different - data items together into a a single item. - - - - - Create a new containing - the two values give. - - First value - Second value - - - - The first value of the pair. - - - - - The second value of the pair. - - - - - Container for a Pair helper method. - - - - - A helper factory method that lets users take advantage of type inference. - - Type of first value. - Type of second value. - First value. - Second value. - A new instance. - - - - A utility class that handles the logic of matching parameter - lists, so we can find the right constructor and method overloads. - - - - - Create a new that will attempt to - match the given parameter types. - - Target parameters to match against. - - - - Tests to see if the given set of types matches the ones - we're looking for. - - parameter list to look for. - true if they match, false if they don't. - - - - Tests to see if the given set of types matches the ones we're looking for. - - Candidate method signature to look for. - True if they match, false if they don't. - - - - Another reflection helper class that has extra methods - for dealing with ParameterInfos. - - - - - A small helper class to encapsulate details of the - reflection API, particularly around generics. - - - - - Create a new instance that - lets you look at information about the given type. - - Type to do reflection on. - - - - Test the given object, looking at - the parameters. Determine if any of the parameters are - open generic types that need type attributes filled in. - - The method to check. - True if any of the parameters are open generics. False if not. - - - - If this type is an open generic, use the - given array to - determine what the required closed type is and return that. - - If the parameter is not an open type, just - return this parameter's type. - Type arguments to substitute in for - the open type parameters. - Corresponding closed type of this parameter. - - - - Given a generic argument name, return the corresponding type for this - closed type. For example, if the current type is SomeType<User>, and the - corresponding definition was SomeType<TSomething>, calling this method - and passing "TSomething" will return typeof(User). - - Name of the generic parameter. - Type of the corresponding generic parameter, or null if there - is no matching name. - - - - The object we're reflecting over. - - - - - Is this type generic? - - - - - Is this type an open generic (no type parameter specified) - - - - - Is this type an array type? - - - - - Is this type an array of generic elements? - - - - - The type of the elements in this type (if it's an array). - - - - - Create a new instance of that - lets you query information about the given ParameterInfo object. - - Parameter to query. - - - - A set of helper methods to pick through lambdas and pull out - from them. - - - - - Pull out a object from an expression of the form - () => SomeClass.SomeMethod() - - Expression describing the method to call. - Corresponding . - - - - Pull out a object from an expression of the form - x => x.SomeMethod() - - The type where the method is defined. - Expression describing the method to call. - Corresponding . - - - - Pull out a object for the get method from an expression of the form - x => x.SomeProperty - - The type where the method is defined. - The type for the property. - Expression describing the property for which the get method is to be extracted. - Corresponding . - - - - Pull out a object for the set method from an expression of the form - x => x.SomeProperty - - The type where the method is defined. - The type for the property. - Expression describing the property for which the set method is to be extracted. - Corresponding . - - - - Pull out a object from an expression of the form () => new SomeType() - - The type where the constructor is defined. - Expression invoking the desired constructor. - Corresponding . - - - + + + + Microsoft.Practices.Unity + + + + + Provides access to the names registered for a container. + + + + + Represents a builder policy interface. Since there are no fixed requirements + for policies, it acts as a marker interface from which to derive all other + policy interfaces. + + + + + Gets the names registered for a type. + + The type. + The names registered for . + + + + An implementation + that constructs a build plan for creating objects. + + + + + A that can create and return an + for the given build key. + + + + + Create a build plan using the given context and build key. + + Current build context. + Current build key. + The build plan. + + + + Creates a build plan using the given context and build key. + + Current build context. + Current build key. + + The build plan. + + + + + Provides extension methods to the class due to the introduction + of class in the .NET for Windows Store apps. + + + + + Returns the constructor in that matches the specified constructor parameter types. + + The type to inspect + The constructor parameter types. + The constructor that matches the specified parameter types. + + + + Returns the non-static declared methods of a type or its base types. + + The type to inspect + An enumerable of the objects. + + + + Returns the non-static method of a type or its based type. + + The type to inspect + The name of the method to seek. + The (closed) parameter type signature of the method. + The discovered + + + + Returns the declared properties of a type or its base types. + + The type to inspect + An enumerable of the objects. + + + + Determines if the types in a parameter set ordinally matches the set of supplied types. + + + + + + + + Base class for attributes that can be placed on parameters + or properties to specify how to resolve the value for + that parameter or property. + + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + This attribute is used to indicate which constructor to choose when + the container attempts to build a type. + + + + + This attribute is used to mark methods that should be called when + the container is building an object. + + + + + This attribute is used to mark properties and parameters as targets for injection. + + + For properties, this attribute is necessary for injection to happen. For parameters, + it's not needed unless you want to specify additional information to control how + the parameter is resolved. + + + + + Create an instance of with no name. + + + + + Create an instance of with the given name. + + Name to use when resolving this dependency. + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + The name specified in the constructor. + + + + + An used to mark a dependency + as optional - the container will try to resolve it, and return null + if the resolution fails rather than throw. + + + + + Construct a new object. + + + + + Construct a new object that + specifies a named dependency. + + Name of the dependency. + + + + Create an instance of that + will be used to get the value for the member this attribute is + applied to. + + Type of parameter or property that + this attribute is decoration. + The resolver object. + + + + Name of the dependency. + + + + + A that composites other + ResolverOverride objects. The GetResolver operation then + returns the resolver from the first child override that + matches the current context and request. + + + + + Base class for all override objects passed in the + method. + + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Wrap this resolver in one that verifies the type of the object being built. + This allows you to narrow any override down to a specific type easily. + + Type to constrain the override to. + The new override. + + + + Wrap this resolver in one that verifies the type of the object being built. + This allows you to narrow any override down to a specific type easily. + + Type to constrain the override to. + The new override. + + + + Add a new to the collection + that is checked. + + item to add. + + + + Add a set of s to the collection. + + items to add. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Class that returns information about the types registered in a container. + + + + + The type that was passed to the method + as the "from" type, or the only type if type mapping wasn't done. + + + + + The type that this registration is mapped to. If no type mapping was done, the + property and this one will have the same value. + + + + + Name the type was registered under. Null for default registration. + + + + + The registered lifetime manager instance. + + + + + The lifetime manager for this registration. + + + This property will be null if this registration is for an open generic. + + + + A class that overrides + the value injected whenever there is a dependency of the + given type, regardless of where it appears in the object graph. + + + + + Create an instance of to override + the given type with the given value. + + Type of the dependency. + Value to use. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience version of that lets you + specify the dependency type using generic syntax. + + Type of the dependency to override. + + + + Construct a new object that will + override the given dependency, and pass the given value. + + + + + A convenience form of that lets you + specify multiple parameter overrides in one shot rather than having + to construct multiple objects. + + + This class isn't really a collection, it just implements IEnumerable + so that we get use of the nice C# collection initializer syntax. + + + + + Base helper class for creating collections of objects + for use in passing a bunch of them to the resolve call. This base class provides + the mechanics needed to allow you to use the C# collection initializer syntax. + + Concrete type of the this class collects. + Key used to create the underlying override object. + Value that the override returns. + + + + Add a new override to the collection with the given key and value. + + Key - for example, a parameter or property name. + Value - the value to be returned by the override. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + Event argument class for the event. + + + + + Construct a new object with the + given child container object. + + An for the newly created child + container. + + + + The newly created child container. + + + + + An extension context for the created child container. + + + + + Base class for subclasses that let you specify that + an instance of a generic type parameter should be resolved. + + + + + Base type for objects that are used to configure parameters for + constructor or method injection, or for getting the value to + be injected into a property. + + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Convert the given set of arbitrary values to a sequence of InjectionParameterValue + objects. The rules are: If it's already an InjectionParameterValue, return it. If + it's a Type, return a ResolvedParameter object for that type. Otherwise return + an InjectionParameter object for that value. + + The values to build the sequence from. + The resulting converted sequence. + + + + Convert an arbitrary value to an InjectionParameterValue object. The rules are: + If it's already an InjectionParameterValue, return it. If it's a Type, return a + ResolvedParameter object for that type. Otherwise return an InjectionParameter + object for that value. + + The value to convert. + The resulting . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + A that lets you specify that + an instance of a generic type parameter should be resolved, providing the + value if resolving fails. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + A class that lets you specify a factory method the container + will use to create the object. + + This is a significantly easier way to do the same + thing the old static factory extension was used for. + + + + Base class for objects that can be used to configure what + class members get injected by the container. + + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type to register. + Policy list to add policies to. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface being registered. If no interface, + this will be null. + Type of concrete type being registered. + Name used to resolve the type object. + Policy list to add policies to. + + + + Create a new instance of with + the given factory function. + + Factory function. + + + + Create a new instance of with + the given factory function. + + Factory function. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface being registered. If no interface, + this will be null. This parameter is ignored in this implementation. + Type of concrete type being registered. + Name used to resolve the type object. + Policy list to add policies to. + + + + A that can be passed to + to configure a + parameter or property as an optional dependency. + + + + + A base class for implementing classes + that deal in explicit types. + + + + + Create a new that exposes + information about the given . + + Type of the parameter. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + + + + The type of parameter this object represents. + + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + Construct a new object that + specifies the given . + + Type of the dependency. + + + + Construct a new object that + specifies the given and . + + Type of the dependency. + Name for the dependency. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of that lets you + specify the type of the dependency using generics syntax. + + Type of the dependency. + + + + Construct a new . + + + + + Construct a new with the given + . + + Name of the dependency. + + + + A special lifetime manager which works like , + except that in the presence of child containers, each child gets it's own instance + of the object, instead of sharing one in the common parent. + + + + + A that holds onto the instance given to it. + When the is disposed, + the instance is disposed with it. + + + + + Base class for Lifetime managers which need to synchronize calls to + . + + + + The purpose of this class is to provide a basic implementation of the lifetime manager synchronization pattern. + + + Calls to the method of a + instance acquire a lock, and if the instance has not been initialized with a value yet the lock will only be released + when such an initialization takes place by calling the method or if + the build request which resulted in the call to the GetValue method fails. + + + + + + + Base class for Lifetime managers - classes that control how + and when instances are created by the Unity container. + + + + + A that controls how instances are + persisted and recovered from an external store. Used to implement + things like singletons and per-http-request lifetime. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object to store. + + + + Remove the value this lifetime policy is managing from backing store. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + This interface provides a hook for the builder context to + implement error recovery when a builder strategy throws + an exception. Since we can't get try/finally blocks onto + the call stack for later stages in the chain, we instead + add these objects to the context. If there's an exception, + all the current IRequiresRecovery instances will have + their Recover methods called. + + + + + A method that does whatever is needed to clean up + as part of cleaning up after an exception. + + + Don't do anything that could throw in this method, + it will cause later recover operations to get skipped + and play real havoc with the stack trace. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + Calls to this method acquire a lock which is released only if a non-null value + has been set for the lifetime manager. + + + + Performs the actual retrieval of a value from the backing store associated + with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + This method is invoked by + after it has acquired its lock. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + Setting a value will attempt to release the lock acquired by + . + + + + Performs the actual storage of the given value into backing store for retrieval later. + + The object being stored. + This method is invoked by + before releasing its lock. + + + + Remove the given object from backing store. + + + + + A method that does whatever is needed to clean up + as part of cleaning up after an exception. + + + Don't do anything that could throw in this method, + it will cause later recover operations to get skipped + and play real havoc with the stack trace. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Standard Dispose pattern implementation. Not needed, but it keeps FxCop happy. + + Always true, since we don't have a finalizer. + + + + This is a custom lifetime manager that acts like , + but also provides a signal to the default build plan, marking the type so that + instances are reused across the build up object graph. + + + + + Construct a new object that does not + itself manage an instance. + + + + + Construct a new object that stores the + give value. This value will be returned by + but is not stored in the lifetime manager, nor is the value disposed. + This Lifetime manager is intended only for internal use, which is why the + normal method is not used here. + + Value to store. + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. In this class, + this is a noop, since it has special hooks down in the guts. + + The object being stored. + + + + Remove the given object from backing store. Noop in this class. + + + + + A strategy that handles Hierarchical lifetimes across a set of parent/child + containers. + + + + + Represents a strategy in the chain of responsibility. + Strategies are required to support both BuildUp and TearDown. + + + + + Represents a strategy in the chain of responsibility. + Strategies are required to support both BuildUp and TearDown. Although you + can implement this interface directly, you may also choose to use + as the base class for your strategies, as + this class provides useful helper methods and makes support BuildUp and TearDown + optional. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a teardown operation. The + PostTearDown method is called when the chain has finished the PreTearDown + phase and executes in reverse order from the PreTearDown calls. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a teardown operation. The + PostTearDown method is called when the chain has finished the PreTearDown + phase and executes in reverse order from the PreTearDown calls. + + Context of the teardown operation. + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + A that will attempt to + resolve a value, and return null if it cannot rather than throwing. + + + + + A strategy that is used at build plan execution time + to resolve a dependent value. + + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + Construct a new object + that will attempt to resolve the given name and type from the container. + + Type to resolve. Must be a reference type. + Name to resolve with. + + + + Construct a new object + that will attempt to resolve the given type from the container. + + Type to resolve. Must be a reference type. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + Type this resolver will resolve. + + + + + Name this resolver will resolve. + + + + + Extension methods on to provide convenience + overloads (generic versions, mostly). + + + + + Removes an individual policy type for a build key. + + The type the policy was registered as. + to remove the policy from. + The key the policy applies. + + + + Removes a default policy. + + The type the policy was registered as. + to remove the policy from. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Gets an individual policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + to search. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list that actually contains the returned policy. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + to search. + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy in the list, if present; returns null otherwise. + + + + Sets an individual policy. + + The interface the policy is registered under. + to add the policy to. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + to add the policy to. + The default policy to be registered. + + + + Base class for the current operation stored in the build context. + + + + + Create a new . + + Type currently being built. + + + + The type that's currently being built. + + + + + Build plan for that will return a Func that will resolve the requested type + through this container later. + + + + + A build plan is an object that, when invoked, will create a new object + or fill in a given existing one. It encapsulates all the information + gathered by the strategies to construct a particular object. + + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + The almost inevitable collection of extra helper methods on + to augment the rich set of what + LINQ already gives us. + + + + + Execute the provided on every item in . + + Type of the items stored in + Sequence of items to process. + Code to run over each item. + + + + Create a single string from a sequence of items, separated by the provided , + and with the conversion to string done by the given . + + This method does basically the same thing as , + but will work on any sequence of items, not just arrays. + Type of items in the sequence. + Sequence of items to convert. + Separator to place between the items in the string. + The conversion function to change TItem -> string. + The resulting string. + + + + Create a single string from a sequence of items, separated by the provided , + and with the conversion to string done by the item's method. + + This method does basically the same thing as , + but will work on any sequence of items, not just arrays. + Type of items in the sequence. + Sequence of items to convert. + Separator to place between the items in the string. + The resulting string. + + + + A class that lets you + override a named parameter passed to a constructor. + + + + + Construct a new object that will + override the given named constructor parameter, and pass the given + value. + + Name of the constructor parameter. + Value to pass for the constructor. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience form of that lets you + specify multiple parameter overrides in one shot rather than having + to construct multiple objects. + + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + A that lets you override + the value for a specified property. + + + + + Create an instance of . + + The property name. + Value to use for the property. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience form of that lets you + specify multiple property overrides in one shot rather than having + to construct multiple objects. + + + + + When implemented in derived classes, this method is called from the + method to create the actual objects. + + Key value to create the resolver. + Value to store in the resolver. + The created . + + + + Interface defining the configuration interface exposed by the + Static Factory extension. + + + + + Base interface for all extension configuration interfaces. + + + + + Retrieve the container instance that we are currently configuring. + + + + + Register the given factory delegate to be called when the container is + asked to resolve . + + Type that will be requested from the container. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Register the given factory delegate to be called when the container is + asked to resolve and . + + Type that will be requested from the container. + The name that will be used when requesting to resolve this type. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Represents the context in which a build-up or tear-down operation runs. + + + + + Represents the context in which a build-up or tear-down operation runs. + + + + + Add a new set of resolver override objects to the current build operation. + + objects to add. + + + + Get a object for the given + or null if that dependency hasn't been overridden. + + Type of the dependency. + Resolver to use, or null if no override matches for the current operation. + + + + A convenience method to do a new buildup operation on an existing context. + + Key to use to build up. + Created object. + + + + A convenience method to do a new buildup operation on an existing context. This + overload allows you to specify extra policies which will be in effect for the duration + of the build. + + Key defining what to build up. + A delegate that takes a . This + is invoked with the new child context before the build up process starts. This gives callers + the opportunity to customize the context for the build process. + Created object. + + + + Gets the head of the strategy chain. + + + The strategy that's first in the chain; returns null if there are no + strategies in the chain. + + + + + Gets the associated with the build. + + + The associated with the build. + + + + + Gets the original build key for the build operation. + + + The original build key for the build operation. + + + + + Get the current build key for the current build operation. + + + + + The set of policies that were passed into this context. + + This returns the policies passed into the context. + Policies added here will remain after buildup completes. + The persistent policies for the current context. + + + + Gets the policies for the current context. + + Any policies added to this object are transient + and will be erased at the end of the buildup. + + The policies for the current context. + + + + + Gets the collection of objects + that need to execute in event of an exception. + + + + + The current object being built up or torn down. + + + The current object being manipulated by the build operation. May + be null if the object hasn't been created yet. + + + + Flag indicating if the build operation should continue. + + true means that building should not call any more + strategies, false means continue to the next strategy. + + + + An object representing what is currently being done in the + build chain. Used to report back errors if there's a failure. + + + + + The build context used to resolve a dependency during the build operation represented by this context. + + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with a , + , and the + build key used to start this build operation. + + The to use for this context. + The to use for this context. + The to use for this context. + Build key to start building. + The existing object to build up. + + + + Create a new using the explicitly provided + values. + + The to use for this context. + The to use for this context. + The set of persistent policies to use for this context. + The set of transient policies to use for this context. It is + the caller's responsibility to ensure that the transient and persistent policies are properly + combined. + Build key for this context. + Existing object to build up. + + + + Create a new using the explicitly provided + values. + + The to use for this context. + The to use for this context. + The set of persistent policies to use for this context. + The set of transient policies to use for this context. It is + the caller's responsibility to ensure that the transient and persistent policies are properly + combined. + Build key for this context. + The resolver overrides. + + + + Add a new set of resolver override objects to the current build operation. + + objects to add. + + + + Get a object for the given + or null if that dependency hasn't been overridden. + + Type of the dependency. + Resolver to use, or null if no override matches for the current operation. + + + + A convenience method to do a new buildup operation on an existing context. + + Key to use to build up. + Created object. + + + + A convenience method to do a new buildup operation on an existing context. This + overload allows you to specify extra policies which will be in effect for the duration + of the build. + + Key defining what to build up. + A delegate that takes a . This + is invoked with the new child context before the build up process starts. This gives callers + the opportunity to customize the context for the build process. + Created object. + + + + Gets the head of the strategy chain. + + + The strategy that's first in the chain; returns null if there are no + strategies in the chain. + + + + + Get the current build key for the current build operation. + + + + + The current object being built up or torn down. + + + The current object being manipulated by the build operation. May + be null if the object hasn't been created yet. + + + + Gets the associated with the build. + + + The associated with the build. + + + + + Gets the original build key for the build operation. + + + The original build key for the build operation. + + + + + The set of policies that were passed into this context. + + This returns the policies passed into the context. + Policies added here will remain after buildup completes. + The persistent policies for the current context. + + + + Gets the policies for the current context. + + + Any modifications will be transient (meaning, they will be forgotten when + the outer BuildUp for this context is finished executing). + + + The policies for the current context. + + + + + Gets the collection of objects + that need to execute in event of an exception. + + + + + Flag indicating if the build operation should continue. + + true means that building should not call any more + strategies, false means continue to the next strategy. + + + + An object representing what is currently being done in the + build chain. Used to report back errors if there's a failure. + + + + + The build context used to resolve a dependency during the build operation represented by this context. + + + + + Represents that a dependency could not be resolved. + + + + + Initializes a new instance of the class with no extra information. + + + + + Initializes a new instance of the class with the given message. + + Some random message. + + + + Initialize a new instance of the class with the given + message and inner exception. + + Some random message + Inner exception. + + + + Initializes a new instance of the class with the build key of the object begin built. + + The build key of the object begin built. + + + + The exception thrown when injection is attempted on a method + that is an open generic or has out or ref params. + + + + + Construct a new with no + message. + + + + + Construct a with the given message + + Message to return. + + + + Construct a with the given message + and inner exception. + + Message to return. + Inner exception + + + + Extension methods to provide convenience overloads over the + interface. + + + + + Start a recursive build up operation to retrieve the default + value for the given type. + + Type of object to build. + Parent context. + Resulting object. + + + + Start a recursive build up operation to retrieve the named + implementation for the given type. + + Type to resolve. + Parent context. + Name to resolve with. + The resulting object. + + + + Add a set of s to the context, specified as a + variable argument list. + + Context to add overrides to. + The overrides. + + + + Data structure that stores the set of + objects and executes them when requested. + + + + + Add a new object to this + list. + + Object to add. + + + + Execute the method + of everything in the recovery list. Recoveries will execute + in the opposite order of add - it's a stack. + + + + + Return the number of recovery objects currently in the stack. + + + + + Represents a lifetime container. + + + A lifetime container tracks the lifetime of an object, and implements + IDisposable. When the container is disposed, any objects in the + container which implement IDisposable are also disposed. + + + + + Adds an object to the lifetime container. + + The item to be added to the lifetime container. + + + + Determine if a given object is in the lifetime container. + + + The item to locate in the lifetime container. + + + Returns true if the object is contained in the lifetime + container; returns false otherwise. + + + + + Removes an item from the lifetime container. The item is + not disposed. + + The item to be removed. + + + + Gets the number of references in the lifetime container + + + The number of references in the lifetime container + + + + + Represents a lifetime container. + + + A lifetime container tracks the lifetime of an object, and implements + IDisposable. When the container is disposed, any objects in the + container which implement IDisposable are also disposed. + + + + + Adds an object to the lifetime container. + + The item to be added to the lifetime container. + + + + Determine if a given object is in the lifetime container. + + + The item to locate in the lifetime container. + + + Returns true if the object is contained in the lifetime + container; returns false otherwise. + + + + + Releases the resources used by the . + + + + + Releases the resources used by the . + + + true to release managed and unmanaged resources; false to release only unmanaged resources. + + + + + Returns an enumerator that iterates through the lifetime container. + + + An object that can be used to iterate through the life time container. + + + + + Returns an enumerator that iterates through the lifetime container. + + + An object that can be used to iterate through the life time container. + + + + + Removes an item from the lifetime container. The item is + not disposed. + + The item to be removed. + + + + Gets the number of references in the lifetime container + + + The number of references in the lifetime container + + + + + A custom collection over objects. + + + + + Removes an individual policy type for a build key. + + The type of policy to remove. + The key the policy applies. + + + + Removes all policies from the list. + + + + + Removes a default policy. + + The type the policy was registered as. + + + + Gets an individual policy. + + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + The key the policy applies to. + True if the search should be in the local policy list only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list if present; returns null otherwise. + + + + Sets an individual policy. + + The of the policy. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + The default policy to be registered. + + + + A custom collection wrapper over objects. + + + + + Initialize a new instance of a class. + + + + + Initialize a new instance of a class with another policy list. + + An inner policy list to search. + + + + Removes an individual policy type for a build key. + + The type of policy to remove. + The key the policy applies. + + + + Removes all policies from the list. + + + + + Removes a default policy. + + The type the policy was registered as. + + + + Gets an individual policy. + + The interface the policy is registered under. + The key the policy applies. + true if the policy searches local only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list, if present; returns null otherwise. + + + + Get the non default policy. + + The interface the policy is registered under. + The key the policy applies to. + True if the search should be in the local policy list only; otherwise false to search up the parent chain. + The policy list in the chain that the searched for policy was found in, null if the policy was + not found. + The policy in the list if present; returns null otherwise. + + + + Sets an individual policy. + + The of the policy. + The policy to be registered. + The key the policy applies. + + + + Sets a default policy. When checking for a policy, if no specific individual policy + is available, the default will be used. + + The interface to register the policy under. + The default policy to be registered. + + + + Gets the number of items in the locator. + + + The number of items in the locator. + + + + + An implementation of . + + + + + Add a new object to this + list. + + Object to add. + + + + Execute the method + of everything in the recovery list. Recoveries will execute + in the opposite order of add - it's a stack. + + + + + Return the number of recovery objects currently in the stack. + + + + + Implementation of which will notify an object about + the completion of a BuildUp operation, or start of a TearDown operation. + + + This strategy checks the object that is passing through the builder chain to see if it + implements IBuilderAware and if it does, it will call + and . This strategy is meant to be used from the + stage. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a teardown operation. The + PreTearDown method is called when the chain is being executed in the + forward direction. + + Context of the teardown operation. + + + + Implemented on a class when it wants to receive notifications + about the build process. + + + + + Called by the when the object is being built up. + + The key of the object that was just built up. + + + + Called by the when the object is being torn down. + + + + + Enumeration to represent the object builder stages. + + + The order of the values in the enumeration is the order in which the stages are run. + + + + + Strategies in this stage run before creation. Typical work done in this stage might + include strategies that use reflection to set policies into the context that other + strategies would later use. + + + + + Strategies in this stage create objects. Typically you will only have a single policy-driven + creation strategy in this stage. + + + + + Strategies in this stage work on created objects. Typical work done in this stage might + include setter injection and method calls. + + + + + Strategies in this stage work on objects that are already initialized. Typical work done in + this stage might include looking to see if the object implements some notification interface + to discover when its initialization stage has been completed. + + + + + Represents a builder policy for mapping build keys. + + + + + Represents a builder policy for mapping build keys. + + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping. This parameter can be null + (called when getting container registrations). + The new build key. + + + + Initialize a new instance of the with the new build key. + + The new build key. + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping, unused in this implementation. + The new build key. + + + + Represents a strategy for mapping build keys in the build up operation. + + + + + Called during the chain of responsibility for a build operation. Looks for the + and if found maps the build key for the current operation. + + The context for the operation. + + + + An implementation of that can map + generic types. + + + + + Create a new instance + that will map generic types. + + Build key to map to. This must be or contain an open generic type. + + + + Maps the build key. + + The build key to map. + Current build context. Used for contextual information + if writing a more sophisticated mapping. + The new build key. + + + + A that will look for a build plan + in the current context. If it exists, it invokes it, otherwise + it creates one and stores it for later, and invokes it. + + + + + Called during the chain of responsibility for a build operation. + + The context for the operation. + + + + An implementation of that chooses + constructors based on these criteria: first, pick a constructor marked with the + attribute. If there + isn't one, then choose the constructor with the longest parameter list. If that is ambiguous, + then throw. + + Thrown when the constructor to choose is ambiguous. + Attribute used to mark the constructor to call. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + + + + A that, when implemented, + will determine which constructor to call from the build plan. + + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + The second object to compare. + The first object to compare. + + Value Condition Less than zero is less than y. Zero equals y. Greater than zero is greater than y. + + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Objects of this type are the return value from . + It encapsulates the desired with the string keys + needed to look up the for each + parameter. + + + + + Base class for return values from selector policies that + return a MemberInfo of some sort plus a list of parameter + keys to look up the parameter resolvers. + + + + + Base class for return of selector policies that need + to keep track of a set of parameter resolvers. + + + + + Adds the parameter resolver. Resolvers are assumed + to be in the order of the parameters to the member. + + The new resolver. + + + + Gets the parameter resolvers. + + An array with the parameter resolvers. + + + + Construct a new , storing + the given member info. + + Member info to store. + + + + The member info stored. + + + + + Create a new instance which + contains the given constructor. + + The constructor to wrap. + + + + The constructor this object wraps. + + + + + This class records the information about which constructor argument is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + The type that is being constructed. + A string representing the constructor being called. + Parameter being resolved. + + + + Generate the string describing what parameter was being resolved. + + The description string. + + + + String describing the constructor being set up. + + + + + Parameter that's being resolved. + + + + + A that emits IL to call constructors + as part of creating a build plan. + + + + + Called during the chain of responsibility for a build operation. + + Existing object is an instance of . + The context for the operation. + + + + A helper method used by the generated IL to set up a PerResolveLifetimeManager lifetime manager + if the current object is such. + + Current build context. + + + + Build up the string that will represent the constructor signature + in any exception message. + + + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an interface (usually due to the lack of a type mapping). + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an abstract class (usually due to the lack of a type mapping). + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + no existing object is present, but the user is attempting to build + an delegate other than Func{T} or Func{IEnumerable{T}}. + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + a dependency cannot be resolved. + + The currently being + used for the build of this object. + + + + A helper method used by the generated IL to throw an exception if + a dependency cannot be resolved because of an invalid constructor. + + The currently being + used for the build of this object. + The signature of the invalid constructor. + + + + A class that records that a constructor is about to be call, and is + responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Generate the description string. + + The string. + + + + Constructor we're trying to call. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Helper method used by generated IL to look up a dependency resolver based on the given key. + + Current build context. + Type of the dependency being resolved. + Key the resolver was stored under. + The found dependency resolver. + + + + Helper method used by generated IL to look up a dependency resolver based on the given key. + + Current build context. + Type of the dependency being resolved. + The configured resolver. + The found dependency resolver. + + + + The type that is to be built with the dynamic build plan. + + + + + The context parameter representing the used when the build plan is executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + An implementation + that constructs a build plan via dynamic IL emission. + + + + + Construct a that + uses the given strategy chain to construct the build plan. + + The strategy chain. + + + + Construct a build plan. + + The current build context. + The current build key. + The created build plan. + + + + A class that records that a constructor is about to be call, and is + responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Generate the description string. + + The string. + + + + Method we're trying to call. + + + + + This class records the information about which constructor argument is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + The type that is being constructed. + A string representing the method being called. + Parameter being resolved. + + + + Generate the string describing what parameter was being resolved. + + The description string. + + + + String describing the method being set up. + + + + + Parameter that's being resolved. + + + + + A that generates IL to call + chosen methods (as specified by the current ) + as part of object build up. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A base class that holds the information shared by all operations + performed by the container while setting properties. + + + + + Initializes a new instance of the class. + + + + + Generate the description of this operation. + + The string. + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + The property value currently being resolved. + + + + + This class records the information about which property value is currently + being resolved, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + A that generates IL to resolve properties + on an object being built. + + + + + Called during the chain of responsibility for a build operation. + + The context for the operation. + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + A helper method used by the generated IL to store the current operation in the build context. + + + + + This class records the information about which property value is currently + being set, and is responsible for generating the error string required when + an error has occurred. + + + + + Initializes a new instance of the class. + + Type property is on. + Name of property being set. + + + + Get a format string used to create the description. Called by + the base method. + + The format string. + + + + Creates an instance of this build plan's type, or fills + in the existing type if passed in. + + Context used to build up the object. + + + + An that will examine the given + types and return a sequence of objects + that should be called as part of building the object. + + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + An implementation of that selects + methods by looking for the given + attribute on those methods. + + Type of attribute used to mark methods + to inject. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + Attribute that marks methods that should + be called. + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + Objects of this type are the return value from . + It encapsulates the desired with the string keys + needed to look up the for each + parameter. + + + + + Create a new instance which + contains the given method. + + The method + + + + The constructor this object wraps. + + + + + An that returns a sequence + of properties that should be injected for the given type. + + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + Base class that provides an implementation of + which lets you override how the parameter resolvers are created. + + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + An implementation of that looks + for properties marked with the + attribute that are also settable and not indexers. + + + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + Objects of this type are returned from + . + This class combines the about + the property with the string key used to look up the resolver + for this property's value. + + + + + Create an instance of + with the given and key. + + The property. + + + + + PropertyInfo for this property. + + + + + IDependencyResolverPolicy for this property + + + + + Implementation of . + + + + + A builder policy that lets you keep track of the current + resolvers and will remove them from the given policy set. + + + + + Add a new resolver to track by key. + + Key that was used to add the resolver to the policy set. + + + + Remove the currently tracked resolvers from the given policy list. + + Policy list to remove the resolvers from. + + + + Add a new resolver to track by key. + + Key that was used to add the resolver to the policy set. + + + + Remove the currently tracked resolvers from the given policy list. + + Policy list to remove the resolvers from. + + + + Get an instance that implements , + either the current one in the policy set or creating a new one if it doesn't + exist. + + Policy list to look up from. + Build key to track. + The resolver tracker. + + + + Add a key to be tracked to the current tracker. + + Policy list containing the resolvers and trackers. + Build key for the resolvers being tracked. + Key for the resolver. + + + + Remove the resolvers for the given build key. + + Policy list containing the build key. + Build key. + + + + An implementation of that + calls back into the build chain to build up the dependency, passing + a type given at compile time as its build key. + + + + + Create a new instance storing the given type. + + Type to resolve. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + This interface defines a standard method to convert any regardless + of the stage enum into a regular, flat strategy chain. + + + + + Convert this into + a flat . + + The flattened . + + + + Represents a chain of responsibility for builder strategies. + + + + + Reverse the order of the strategy chain. + + The reversed strategy chain. + + + + Execute this strategy chain against the given context, + calling the Buildup methods on the strategies. + + Context for the build process. + The build up object + + + + Execute this strategy chain against the given context, + calling the TearDown methods on the strategies. + + Context for the teardown process. + + + + A builder policy used to create lifetime policy instances. + Used by the LifetimeStrategy when instantiating open + generic types. + + + + + Create a new instance of . + + The new instance. + + + + The type of Lifetime manager that will be created by this factory. + + + + + An implementation that uses + a to figure out if an object + has already been created and to update or remove that + object from some backing store. + + + + + Called during the chain of responsibility for a build operation. The + PreBuildUp method is called when the chain is being executed in the + forward direction. + + Context of the build operation. + + + + Called during the chain of responsibility for a build operation. The + PostBuildUp method is called when the chain has finished the PreBuildUp + phase and executes in reverse order from the PreBuildUp calls. + + Context of the build operation. + + + + Represents a chain of responsibility for builder strategies partitioned by stages. + + The stage enumeration to partition the strategies. + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with an inner strategy chain to use when building. + + The inner strategy chain to use first when finding strategies in the build operation. + + + + Adds a strategy to the chain at a particular stage. + + The strategy to add to the chain. + The stage to add the strategy. + + + + Add a new strategy for the . + + The of + The stage to add the strategy. + + + + Clear the current strategy chain list. + + + This will not clear the inner strategy chain if this instance was created with one. + + + + + Makes a strategy chain based on this instance. + + A new . + + + + Represents a chain of responsibility for builder strategies. + + + + + Initialize a new instance of the class. + + + + + Initialize a new instance of the class with a collection of strategies. + + A collection of strategies to initialize the chain. + + + + Adds a strategy to the chain. + + The strategy to add to the chain. + + + + Adds strategies to the chain. + + The strategies to add to the chain. + + + + Reverse the order of the strategy chain. + + The reversed strategy chain. + + + + Execute this strategy chain against the given context to build up. + + Context for the build processes. + The build up object + + + + Execute this strategy chain against the given context, + calling the TearDown methods on the strategies. + + Context for the teardown process. + + + + Returns an enumerator that iterates through the collection. + + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + + An object that can be used to iterate through the collection. + + + + + Build key used to combine a type object with a string name. Used by + ObjectBuilder to indicate exactly what is being built. + + + + + Create a new instance with the given + type and name. + + to build. + Key to use to look up type mappings and singletons. + + + + Create a new instance for the default + buildup of the given type. + + to build. + + + + This helper method creates a new instance. It is + initialized for the default key for the given type. + + Type to build. + A new instance. + + + + This helper method creates a new instance for + the given type and key. + + Type to build + Key to use to look up type mappings and singletons. + A new instance initialized with the given type and name. + + + + Compare two instances. + + Two instances compare equal + if they contain the same name and the same type. Also, comparing + against a different type will also return false. + Object to compare to. + True if the two keys are equal, false if not. + + + + Calculate a hash code for this instance. + + A hash code. + + + + Compare two instances for equality. + + Two instances compare equal + if they contain the same name and the same type. + First of the two keys to compare. + Second of the two keys to compare. + True if the values of the keys are the same, else false. + + + + Compare two instances for inequality. + + Two instances compare equal + if they contain the same name and the same type. If either field differs + the keys are not equal. + First of the two keys to compare. + Second of the two keys to compare. + false if the values of the keys are the same, else true. + + + + Formats the build key as a string (primarily for debugging). + + A readable string representation of the build key. + + + + Return the stored in this build key. + + The type to build. + + + + Returns the name stored in this build key. + + The name to use when building. + + + + A generic version of so that + you can new up a key using generic syntax. + + Type for the key. + + + + Construct a new that + specifies the given type. + + + + + Construct a new that + specifies the given type and name. + + Name for the key. + + + + A series of helper methods to deal with sequences - + objects that implement . + + + + + A function that turns an arbitrary parameter list into an + . + + Type of arguments. + The items to put into the collection. + An array that contains the values of the . + + + + Given two sequences, return a new sequence containing the corresponding values + from each one. + + Type of first sequence. + Type of second sequence. + First sequence of items. + Second sequence of items. + New sequence of pairs. This sequence ends when the shorter of sequence1 and sequence2 does. + + + + A that lets you register a + delegate with the container to create an object, rather than calling + the object's constructor. + + + + + Base class for all extension objects. + + + + + The container calls this method when the extension is added. + + A instance that gives the + extension access to the internals of the container. + + + + Initial the container with this extension's functionality. + + + When overridden in a derived class, this method will modify the given + by adding strategies, policies, etc. to + install it's functions into the container. + + + + Removes the extension's functions from the container. + + + + This method is called when extensions are being removed from the container. It can be + used to do things like disconnect event handlers or clean up member state. You do not + need to remove strategies or policies here; the container will do that automatically. + + + The default implementation of this method does nothing. + + + + + The container this extension has been added to. + + The that this extension has been added to. + + + + The object used to manipulate + the inner state of the container. + + + + + Initialize this extension. This particular extension requires no + initialization work. + + + + + Register the given factory delegate to be called when the container is + asked to resolve and . + + Type that will be requested from the container. + The name that will be used when requesting to resolve this type. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + Register the given factory delegate to be called when the container is + asked to resolve . + + Type that will be requested from the container. + Delegate to invoke to create the instance. + The container extension object this method was invoked on. + + + + An implementation of that + acts as a decorator over another . + This checks to see if the current type being built is the + right one before checking the inner . + + + + + Create an instance of + + Type to check for. + Inner override to check after type matches. + + + + Return a that can be used to give a value + for the given desired dependency. + + Current build context. + Type of dependency desired. + a object if this override applies, null if not. + + + + A convenience version of that lets you + specify the type to construct via generics syntax. + + Type to check for. + + + + Create an instance of . + + Inner override to check after type matches. + + + + Extension class that adds a set of convenience overloads to the + interface. + + + + + Register a type with specific members to be injected. + + Type this registration is for. + Container to configure. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + + This overload registers a default mapping and transient lifetime. + + + that will be requested. + that will actually be returned. + Container to configure. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Container to configure. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + that will be requested. + that will actually be returned. + Container to configure. + Name of this mapping. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Container to configure. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type with the container. + No type mapping is performed for this type. + + The type to apply the to. + Container to configure. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type with the container. + No type mapping is performed for this type. + + The type to configure injection on. + Container to configure. + Name that will be used to request the type. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + The type to apply the to. + Container to configure. + Name that will be used to request the type. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type with specific members to be injected. + + Container to configure. + Type this registration is for. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + + This overload registers a default mapping. + + + Container to configure. + that will be requested. + that will actually be returned. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container. + + + This method is used to tell the container that when asked for type , + actually return an instance of type . This is very useful for + getting instances of interfaces. + + Container to configure. + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a type mapping with the container, where the created instances will use + the given . + + Container to configure. + that will be requested. + that will actually be returned. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to apply the to. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to configure in the container. + Name to use for registration, null if a default registration. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register a for the given type and name with the container. + No type mapping is performed for this type. + + Container to configure. + The to apply the to. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration and has the container take over the lifetime of the instance. + + Type of instance to register (may be an implemented interface instead of the full type). + Container to configure. + Object to returned. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration (name = null). + + + Type of instance to register (may be an implemented interface instead of the full type). + Container to configure. + Object to returned. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload automatically has the container take ownership of the . + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Container to configure. + Name for registration. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Container to configure. + Name for registration. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration and has the container take over the lifetime of the instance. + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload does a default registration (name = null). + + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + This overload automatically has the container take ownership of the . + + Container to configure. + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve an instance of the default requested type from the container. + + of object to get from the container. + Container to resolve from. + Any overrides for the resolve call. + The retrieved object. + + + + Resolve an instance of the requested type with the given name from the container. + + of object to get from the container. + Container to resolve from. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Resolve an instance of the default requested type from the container. + + Container to resolve from. + of object to get from the container. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Container to resolve from. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + + This overload uses the default registrations. + + + of object to perform injection on. + Container to resolve through. + Instance to build up. + Any overrides for the buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Container to resolve through. + Instance to build up. + name to use when looking up the typemappings and other configurations. + Any overrides for the Buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + + This overload uses the default registrations. + + + Container to resolve through. + of object to perform injection on. + Instance to build up. + Any overrides for the Buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Creates a new extension object and adds it to the container. + + Type of to add. The extension type + will be resolved from within the supplied . + Container to add the extension to. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + The configuration interface required. + Container to configure. + The requested extension's configuration interface, or null if not found. + + + + Check if a particular type has been registered with the container with + the default name. + + Container to inspect. + Type to check registration for. + True if this type has been registered, false if not. + + + + Check if a particular type/name pair has been registered with the container. + + Container to inspect. + Type to check registration for. + Name to check registration for. + True if this type/name pair has been registered, false if not. + + + + Check if a particular type has been registered with the container with the default name. + + Type to check registration for. + Container to inspect. + True if this type has been registered, false if not. + + + + Check if a particular type/name pair has been registered with the container. + + Type to check registration for. + Container to inspect. + Name to check registration for. + True if this type/name pair has been registered, false if not. + + + + The class provides the means for extension objects + to manipulate the internal state of the . + + + + + Store a type/name pair for later resolution. + + + + When users register type mappings (or other things) with a named key, this method + allows you to register that name with the container so that when the + method is called, that name is included in the list that is returned. + + to register. + Name associated with that type. + + + + The container that this context is associated with. + + The object. + + + + The strategies this container uses. + + The that the container uses to build objects. + + + + The strategies this container uses to construct build plans. + + The that this container uses when creating + build plans. + + + + The policies this container uses. + + The the that container uses to build objects. + + + + The that this container uses. + + The is used to manage objects that the container is managing. + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This event is raised when the method is called, providing + the newly created child container to extensions to act on as they see fit. + + + + + An EventArgs class that holds a string Name. + + + + + Create a new with a null name. + + + + + Create a new with the given name. + + Name to store. + + + + The name. + + Name used for this EventArg object. + + + + Event argument class for the event. + + + + + Create a new instance of . + + Type to map from. + Type to map to. + Name for the registration. + to manage instances. + + + + Type to map from. + + + + + Type to map to. + + + + + to manage instances. + + + + + Event argument class for the event. + + + + + Create a default instance. + + + + + Create a instance initialized with the given arguments. + + Type of instance being registered. + The instance object itself. + Name to register under, null if default registration. + object that handles how + the instance will be owned. + + + + Type of instance being registered. + + + Type of instance being registered. + + + + + Instance object being registered. + + Instance object being registered + + + + that controls ownership of + this instance. + + + + + A that lets you specify that + an instance of a generic type parameter should be resolved. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + name to use when looking up in the container. + + + + Return a instance that will + return this types value for the parameter. + + The actual type to resolve. + The resolution key. + The . + + + + A that lets you specify that + an array containing the registered instances of a generic type parameter + should be resolved. + + + + + Create a new instance that specifies + that the given named generic parameter should be resolved. + + The generic parameter name to resolve. + The values for the elements, that will + be converted to objects. + + + + Test to see if this parameter value has a matching type for the given type. + + Type to check. + True if this parameter value is compatible with type , + false if not. + A type is considered compatible if it is an array type of rank one + and its element type is a generic type parameter with a name matching this generic + parameter name configured for the receiver. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + Name for the type represented by this . + This may be an actual type name or a generic argument name. + + + + + A Unity container extension that allows you to configure + which constructors, properties, and methods get injected + via an API rather than through attributes. + + + + + Initial the container with this extension's functionality. + + + When overridden in a derived class, this method will modify the given + by adding strategies, policies, etc. to + install it's functions into the container. + + + + API to configure the injection settings for a particular type. + + Type the injection is being configured for. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type the injection is being configured for. + Name of registration + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type. + + Type to configure. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type to configure. + Name of registration. + Objects containing the details on which members to inject and how. + This extension object. + + + + API to configure the injection settings for a particular type/name pair. + + Type of interface/base class being registered (may be null). + Type of actual implementation class being registered. + Name of registration. + Objects containing the details on which members to inject and how. + This extension object. + + + + A class that holds the collection of information + for a constructor, so that the container can + be configured to call this constructor. + + + + + Create a new instance of that looks + for a constructor with the given set of parameters. + + The values for the parameters, that will + be converted to objects. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Interface registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + An that configures the + container to call a method as part of buildup. + + + + + Create a new instance which will configure + the container to call the given methods with the given parameters. + + Name of the method to call. + Parameter values for the method. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Type of interface registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + A small function to handle name matching. You can override this + to do things like case insensitive comparisons. + + MethodInfo for the method you're checking. + Name of the method you're looking for. + True if a match, false if not. + + + + A class that holds on to the given value and provides + the required + when the container is configured. + + + + + Create an instance of that stores + the given value, using the runtime type of that value as the + type of the parameter. + + Value to be injected for this parameter. + + + + Create an instance of that stores + the given value, associated with the given type. + + Type of the parameter. + Value of the parameter + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of that makes it a + little easier to specify the type of the parameter. + + Type of parameter. + + + + Create a new . + + Value for the parameter. + + + + This class stores information about which properties to inject, + and will configure the container accordingly. + + + + + Configure the container to inject the given property name, + resolving the value via the container. + + Name of the property to inject. + + + + Configure the container to inject the given property name, + using the value supplied. This value is converted to an + object using the + rules defined by the + method. + + Name of property to inject. + Value for property. + + + + Add policies to the to configure the + container to call this constructor with the appropriate parameter values. + + Interface being registered, ignored in this implementation. + Type to register. + Name used to resolve the type object. + Policy list to add policies to. + + + + A class that stores a type, and generates a + resolver object that resolves all the named instances or the + type registered in a container. + + + + + Construct a new that + resolves to the given element type and collection of element values. + + The type of elements to resolve. + The values for the elements, that will + be converted to objects. + + + + Construct a new that + resolves to the given array and element types and collection of element values. + + The type for the array of elements to resolve. + The type of elements to resolve. + The values for the elements, that will + be converted to objects. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of for convenience + when creating them by hand. + + Type of the elements for the array of the parameter. + + + + Construct a new that + resolves to the given element generic type with the given element values. + + The values for the elements, that will + be converted to objects. + + + + Interface defining the behavior of the Unity dependency injection container. + + + + + Register a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Register an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + + object that controls how this instance will be managed by the container. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve an instance of the requested type with the given name from the container. + + of object to get from the container. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Instance to build up. + name to use when looking up the TypeMappings and other configurations. + Any overrides for the resolve calls. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container, and clean it up. + + The object to tear down. + + + + Add an extension object to the container. + + to add. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Resolve access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + of configuration interface required. + The requested extension's configuration interface, or null if not found. + + + + Remove all installed extensions from this container. + + + + This method removes all extensions from the container, including the default ones + that implement the out-of-the-box behavior. After this method, if you want to use + the container again you will need to either read the default extensions or replace + them with your own. + + + The registered instances and singletons that have already been set up in this container + do not get removed. + + + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Create a child container. + + + A child container shares the parent's configuration, but can be configured with different + settings or lifetime. + The new child container. + + + + The parent of this container. + + The parent container, or null if this container doesn't have one. + + + + Get a sequence of that describe the current state + of the container. + + + + + A that holds a weak reference to + it's managed instance. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + An implementation of that + creates instances of the type of the given Lifetime Manager + by resolving them through the container. + + + + + Create a new that will + return instances of the given type, creating them by + resolving through the container. + + Container to resolve with. + Type of LifetimeManager to create. + + + + Create a new instance of . + + The new instance. + + + + The type of Lifetime manager that will be created by this factory. + + + + + A that holds the instances given to it, + keeping one instance per thread. + + + + This LifetimeManager does not dispose the instances it holds. + + + + + + Initializes a new instance of the class. + + + + + Retrieve a value from the backing store associated with this Lifetime policy for the + current thread. + + the object desired, or if no such object is currently + stored for the current thread. + + + + Stores the given value into backing store for retrieval later when requested + in the current thread. + + The object being stored. + + + + Remove the given object from backing store. + + Not implemented for this lifetime manager. + + + + An implementation that does nothing, + thus ensuring that instances are created new every time. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + This strategy implements the logic that will call container.ResolveAll + when an array parameter is detected. + + + + + Do the PreBuildUp stage of construction. This is where the actual work is performed. + + Current build context. + + + + An implementation of that is + aware of the build keys used by the Unity container. + + + + + Create a instance for the given + . + + + This implementation looks for the Unity on the + parameter and uses it to create an instance of + for this parameter. + Parameter to create the resolver for. + The resolver object. + + + + An implementation of that is aware + of the build keys used by the Unity container. + + + + + Create a instance for the given + . + + Parameter to create the resolver for. + The resolver object. + + + + An implementation of that is aware of + the build keys used by the unity container. + + + + + Create a for the given + property. + + Property to create resolver for. + The resolver object. + + + + A implementation that returns + the value set in the constructor. + + + + + Create a new instance of + which will return the given value when resolved. + + The value to return. + + + + Get the value for a dependency. + + Current build context. + The value for the dependency. + + + + An implementation of that stores a + type and name, and at resolution time puts them together into a + . + + + + + Create an instance of + with the given type and name. + + The type. + The name (may be null). + + + + Resolve the value for a dependency. + + Current build context. + The value for the dependency. + + + + The type that this resolver resolves. + + + + + The name that this resolver resolves. + + + + + An implementation of that resolves to + to an array populated with the values that result from resolving other instances + of . + + + + + Create an instance of + with the given type and a collection of + instances to use when populating the result. + + The type. + The resolver policies to use when populating an array. + + + + Resolve the value for a dependency. + + Current build context. + An array populated with the results of resolving the resolver policies. + + + + An implementation of that selects + the given constructor and creates the appropriate resolvers to call it with + the specified parameters. + + + + + Create an instance of that + will return the given constructor, being passed the given injection values + as parameters. + + The constructor to call. + Set of objects + that describes how to obtain the values for the constructor parameters. + + + + Choose the constructor to call for the given type. + + Current build context + The to add any + generated resolver objects into. + The chosen constructor. + + + + Helper class for implementing selector policies that need to + set up dependency resolver policies. + + + + + Add dependency resolvers to the parameter set. + + Type that's currently being built (used to resolve open generics). + PolicyList to add the resolvers to. + Objects supplying the dependency resolvers. + Result object to store the keys in. + + + + A implementation that calls the specific + methods with the given parameters. + + + + + Add the given method and parameter collection to the list of methods + that will be returned when the selector's + method is called. + + Method to call. + sequence of objects + that describe how to create the method parameter values. + + + + Return the sequence of methods to call while building the target object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of methods to call. + + + + An implementation of which returns + the set of specific properties that the selector was configured with. + + + + + Add a property that will be par of the set returned when the + is called. + + The property to set. + object describing + how to create the value to inject. + + + + Returns sequence of properties on the given type that + should be set as part of building that object. + + Current build context. + The to add any + generated resolver objects into. + Sequence of objects + that contain the properties to set. + + + + The exception thrown by the Unity container when + an attempt to resolve a dependency fails. + + + + + Create a new that records + the exception for the given type and name. + + Type requested from the container. + Name requested from the container. + The actual exception that caused the failure of the build. + The build context representing the failed operation. + + + + The type that was being requested from the container at the time of failure. + + + + + The name that was being requested from the container at the time of failure. + + + + + A class that stores a name and type, and generates a + resolver object that resolves the parameter via the + container. + + + + + Construct a new that + resolves to the given type. + + Type of this parameter. + + + + Construct a new that + resolves the given type and name. + + Type of this parameter. + Name to use when resolving parameter. + + + + Return a instance that will + return this types value for the parameter. + + Type that contains the member that needs this parameter. Used + to resolve open generic parameters. + The . + + + + A generic version of for convenience + when creating them by hand. + + Type of the parameter + + + + Create a new for the given + generic type and the default name. + + + + + Create a new for the given + generic type and name. + + Name to use to resolve this parameter. + + + + An implementation of that wraps a Unity container. + + + + + Initializes a new instance of the class for a container. + + The to wrap with the + interface implementation. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + When implemented by inheriting classes, this method will do the actual work of resolving + the requested service instance. + + Type of instance requested.Name of registered service you want. May be null. + + The requested service instance. + + + + + When implemented by inheriting classes, this method will do the actual work of + resolving all the requested service instances. + + Type of service requested. + + Sequence of service instance objects. + + + + + A static helper class that includes various parameter checking routines. + + + + + Throws if the given argument is null. + + if tested value if null. + Argument value to test. + Name of the argument being tested. + + + + Throws an exception if the tested string argument is null or the empty string. + + Thrown if string value is null. + Thrown if the string is empty + Argument value to check. + Name of argument being checked. + + + + Verifies that an argument type is assignable from the provided type (meaning + interfaces are implemented, or classes exist in the base class hierarchy). + + The argument type that will be assigned to. + The type of the value being assigned. + Argument name. + + + + Verifies that an argument instance is assignable from the provided type (meaning + interfaces are implemented, or classes exist in the base class hierarchy, or instance can be + assigned through a runtime wrapper, as is the case for COM Objects). + + The argument type that will be assigned to. + The instance that will be assigned. + Argument name. + + + + A helper class to manage the names that get registered in the container + + + + + The build stages we use in the Unity container + strategy pipeline. + + + + + First stage. By default, nothing happens here. + + + + + Second stage. Type mapping occurs here. + + + + + Third stage. lifetime managers are checked here, + and if they're available the rest of the pipeline is skipped. + + + + + Fourth stage. Reflection over constructors, properties, etc. is + performed here. + + + + + Fifth stage. Instance creation happens here. + + + + + Sixth stage. Property sets and method injection happens here. + + + + + Seventh and final stage. By default, nothing happens here. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate.. + + + + + Looks up a localized string similar to The provided string argument must not be empty.. + + + + + Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}). + + + + + Looks up a localized string similar to The current type, {0}, is an abstract class and cannot be constructed. Are you missing a type mapping?. + + + + + Looks up a localized string similar to The current type, {0}, is delegate and cannot be constructed. Unity only supports resolving Func<T> and Func<IEnumerable<T>> by default.. + + + + + Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?. + + + + + Looks up a localized string similar to Cannot extract type from build key {0}.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) is an open generic method. Open generic methods cannot be injected.. + + + + + Looks up a localized string similar to The property {0} on type {1} is an indexer. Indexed properties cannot be injected.. + + + + + Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) has at least one out parameter. Methods with out parameters cannot be injected.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) has at least one ref parameter.Methods with ref parameters cannot be injected.. + + + + + Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed.. + + + + + Looks up a localized string similar to The method {0}.{1}({2}) is static. Static methods cannot be injected.. + + + + + Looks up a localized string similar to The type {0} is an open generic type. An open generic type cannot be resolved.. + + + + + Looks up a localized string similar to Resolving parameter "{0}" of constructor {1}. + + + + + Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}.. + + + + + Looks up a localized string similar to Parameter type inference does not work for null values. Indicate the parameter type explicitly using a properly configured instance of the InjectionParameter or InjectionParameter<T> classes.. + + + + + Looks up a localized string similar to Calling constructor {0}. + + + + + Looks up a localized string similar to Calling method {0}.{1}. + + + + + Looks up a localized string similar to An item with the given key is already present in the dictionary.. + + + + + Looks up a localized string similar to The lifetime manager is already registered. Lifetime managers cannot be reused, please create a new one.. + + + + + Looks up a localized string similar to The override marker build plan policy has been invoked. This should never happen, looks like a bug in the container.. + + + + + Looks up a localized string similar to Resolving parameter "{0}" of method {1}.{2}. + + + + + Looks up a localized string similar to The value for parameter "{1}" of method {0} could not be resolved. . + + + + + Looks up a localized string similar to Could not resolve dependency for build key {0}.. + + + + + Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate.. + + + + + Looks up a localized string similar to The supplied type {0} must be an open generic type.. + + + + + Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}.. + + + + + Looks up a localized string similar to The type {0} does not have an accessible constructor.. + + + + + Looks up a localized string similar to The type {0} does not have a generic argument named "{1}". + + + + + Looks up a localized string similar to while resolving. + + + + + Looks up a localized string similar to The type {0} does not have a constructor that takes the parameters ({1}).. + + + + + Looks up a localized string similar to The type {0} does not have a public method named {1} that takes the parameters ({2}).. + + + + + Looks up a localized string similar to The type {0} does not contain an instance property named {1}.. + + + + + Looks up a localized string similar to The type {0} is not a generic type, and you are attempting to inject a generic parameter named "{1}".. + + + + + Looks up a localized string similar to The type {0} is not an array type with rank 1, and you are attempting to use a [DependencyArray] attribute on a parameter or property with this type.. + + + + + Looks up a localized string similar to Optional dependencies must be reference types. The type {0} is a value type.. + + + + + Looks up a localized string similar to The property {0} on type {1} is not settable.. + + + + + Looks up a localized string similar to The property {0} on type {1} is of type {2}, and cannot be injected with a value of type {3}.. + + + + + Looks up a localized string similar to The value for the property "{0}" could not be resolved.. + + + + + Looks up a localized string similar to The provided string argument must not be empty.. + + + + + Looks up a localized string similar to Resolution of the dependency failed, type = "{0}", name = "{1}". + Exception occurred while: {2}. + Exception is: {3} - {4} + ----------------------------------------------- + At the time of the exception, the container was: + . + + + + + Looks up a localized string similar to Resolving {0},{1}. + + + + + Looks up a localized string similar to Resolving {0},{1} (mapped from {2}, {3}). + + + + + Looks up a localized string similar to Resolving value for property {0}.{1}. + + + + + Looks up a localized string similar to The constructor {1} selected for type {0} has ref or out parameters. Such parameters are not supported for constructor injection.. + + + + + Looks up a localized string similar to Setting value for property {0}.{1}. + + + + + Looks up a localized string similar to The type {0} cannot be constructed. You must configure the container to supply this value.. + + + + + Looks up a localized string similar to The type {1} cannot be assigned to variables of type {0}.. + + + + + Looks up a localized string similar to <unknown>. + + + + + A simple, extensible dependency injection container. + + + + + Create a default . + + + + + Create a with the given parent container. + + The parent . The current object + will apply its own settings first, and then check the parent for additional ones. + + + + RegisterType a type mapping with the container, where the created instances will use + the given . + + that will be requested. + that will actually be returned. + Name to use for registration, null if a default registration. + The that controls the lifetime + of the returned instance. + Injection configuration objects. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + RegisterType an instance with the container. + + + + Instance registration is much like setting a type as a singleton, except that instead + of the container creating the instance the first time it is requested, the user + creates the instance ahead of type and adds that instance to the container. + + + Type of instance to register (may be an implemented interface instead of the full type). + Object to returned. + Name for registration. + + If true, the container will take over the lifetime of the instance, + calling Dispose on it (if it's ) when the container is Disposed. + + If false, container will not maintain a strong reference to . User is responsible + for disposing instance, and for keeping the instance from being garbage collected. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Get an instance of the requested type with the given name from the container. + + of object to get from the container. + Name of the object to retrieve. + Any overrides for the resolve call. + The retrieved object. + + + + Return instances of all registered types requested. + + + + This method is useful if you've registered multiple types with the same + but different names. + + + Be aware that this method does NOT return an instance for the default (unnamed) registration. + + + The type requested. + Any overrides for the resolve calls. + Set of objects of type . + + + + Run an existing object through the container and perform injection on it. + + + + This method is useful when you don't control the construction of an + instance (ASP.NET pages or objects created via XAML, for instance) + but you still want properties and other injection performed. + + of object to perform injection on. + Instance to build up. + name to use when looking up the typemappings and other configurations. + Any overrides for the buildup. + The resulting object. By default, this will be , but + container extensions may add things like automatic proxy creation which would + cause this to return a different object (but still type compatible with ). + + + + Run an existing object through the container, and clean it up. + + The object to tear down. + + + + Add an extension object to the container. + + to add. + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Get access to a configuration interface exposed by an extension. + + Extensions can expose configuration interfaces as well as adding + strategies and policies to the container. This method walks the list of + added extensions and returns the first one that implements the requested type. + + of configuration interface required. + The requested extension's configuration interface, or null if not found. + + + + Remove all installed extensions from this container. + + + + This method removes all extensions from the container, including the default ones + that implement the out-of-the-box behavior. After this method, if you want to use + the container again you will need to either read the default extensions or replace + them with your own. + + + The registered instances and singletons that have already been set up in this container + do not get removed. + + + The object that this method was called on (this in C#, Me in Visual Basic). + + + + Create a child container. + + + A child container shares the parent's configuration, but can be configured with different + settings or lifetime. + The new child container. + + + + Dispose this container instance. + + + Disposing the container also disposes any child containers, + and disposes any instances whose lifetimes are managed + by the container. + + + + + Dispose this container instance. + + + This class doesn't have a finalizer, so will always be true. + True if being called from the IDisposable.Dispose + method, false if being called from a finalizer. + + + + Remove policies associated with building this type. This removes the + compiled build plan so that it can be rebuilt with the new settings + the next time this type is resolved. + + Type of object to clear the plan for. + Name the object is being registered with. + + + + The parent of this container. + + The parent container, or null if this container doesn't have one. + + + + Get a sequence of that describe the current state + of the container. + + + + + Implementation of the ExtensionContext that is actually used + by the UnityContainer implementation. + + + This is a nested class so that it can access state in the + container that would otherwise be inaccessible. + + + + + This event is raised when the method, + or one of its overloads, is called. + + + + + This extension supplies the default behavior of the UnityContainer API + by handling the context events and setting policies. + + + + + Install the default container behavior into the container. + + + + + Remove the default behavior from the container. + + + + + This extension installs the default strategies and policies into the container + to implement the standard behavior of the Unity container. + + + + + Add the default ObjectBuilder strategies & policies to the container. + + + + + Helper class to wrap common reflection stuff dealing with + methods. + + + + + Create a new instance that + lets us do more reflection stuff on that method. + + The method to reflect on. + + + + Given our set of generic type arguments, + + The generic type arguments. + An array with closed parameter types. + + + + Returns true if any of the parameters of this method + are open generics. + + + + + Return the of each parameter for this + method. + + Sequence of objects, one for + each parameter in order. + + + + A helper class that encapsulates two different + data items together into a a single item. + + + + + Create a new containing + the two values give. + + First value + Second value + + + + The first value of the pair. + + + + + The second value of the pair. + + + + + Container for a Pair helper method. + + + + + A helper factory method that lets users take advantage of type inference. + + Type of first value. + Type of second value. + First value. + Second value. + A new instance. + + + + A utility class that handles the logic of matching parameter + lists, so we can find the right constructor and method overloads. + + + + + Create a new that will attempt to + match the given parameter types. + + Target parameters to match against. + + + + Tests to see if the given set of types matches the ones + we're looking for. + + parameter list to look for. + true if they match, false if they don't. + + + + Tests to see if the given set of types matches the ones we're looking for. + + Candidate method signature to look for. + True if they match, false if they don't. + + + + Another reflection helper class that has extra methods + for dealing with ParameterInfo. + + + + + A small helper class to encapsulate details of the + reflection API, particularly around generics. + + + + + Create a new instance that + lets you look at information about the given type. + + Type to do reflection on. + + + + Test the given object, looking at + the parameters. Determine if any of the parameters are + open generic types that need type attributes filled in. + + The method to check. + True if any of the parameters are open generics. False if not. + + + + If this type is an open generic, use the + given array to + determine what the required closed type is and return that. + + If the parameter is not an open type, just + return this parameter's type. + Type arguments to substitute in for + the open type parameters. + Corresponding closed type of this parameter. + + + + Given a generic argument name, return the corresponding type for this + closed type. For example, if the current type is SomeType<User>, and the + corresponding definition was SomeType<TSomething>, calling this method + and passing "TSomething" will return typeof(User). + + Name of the generic parameter. + Type of the corresponding generic parameter, or null if there + is no matching name. + + + + The object we're reflecting over. + + + + + Is this type generic? + + + + + Is this type an open generic (no type parameter specified) + + + + + Is this type an array type? + + + + + Is this type an array of generic elements? + + + + + The type of the elements in this type (if it's an array). + + + + + Returns all the public constructors defined for the current reflected . + + + An enumeration of ConstructorInfo objects representing all the public instance constructors defined for the + current reflected , but not including the type initializer (static constructor). + + + + + Create a new instance of that + lets you query information about the given ParameterInfo object. + + Parameter to query. + + + + A set of helper methods to pick through lambdas and pull out + from them. + + + + + Pull out a object from an expression of the form + () => SomeClass.SomeMethod() + + Expression describing the method to call. + Corresponding . + + + + Pull out a object from an expression of the form + x => x.SomeMethod() + + The type where the method is defined. + Expression describing the method to call. + Corresponding . + + + + Pull out a object for the get method from an expression of the form + x => x.SomeProperty + + The type where the method is defined. + The type for the property. + Expression describing the property for which the get method is to be extracted. + Corresponding . + + + + Pull out a object for the set method from an expression of the form + x => x.SomeProperty + + The type where the method is defined. + The type for the property. + Expression describing the property for which the set method is to be extracted. + Corresponding . + + + + + + + + + + + + + Pull out a object from an expression of the form () => new SomeType() + + The type where the constructor is defined. + Expression invoking the desired constructor. + Corresponding . + + +