From ab4618f4a4ea1e0319cd5a54c759517aa89cec6c Mon Sep 17 00:00:00 2001 From: Nate Zaugg Date: Thu, 29 Oct 2015 17:48:34 -0600 Subject: [PATCH 1/2] Updating to .net 4.5 (required by Unity 4) and updated reference to Unity 4 --- .../UnityAutoMoq.Tests.csproj | 25 +- src/UnityAutoMoq.Tests/packages.config | 6 +- src/UnityAutoMoq/UnityAutoMoq.csproj | 26 +- src/UnityAutoMoq/packages.config | 6 +- .../CommonServiceLocator.1.0.nupkg | Bin 37216 -> 0 bytes .../Microsoft.Practices.ServiceLocation.XML | 280 - .../Microsoft.Practices.ServiceLocation.dll | Bin 29760 -> 0 bytes .../Microsoft.Practices.ServiceLocation.pdb | Bin 24064 -> 0 bytes .../Microsoft.Practices.ServiceLocation.dll | Bin 26504 -> 0 bytes .../Microsoft.Practices.ServiceLocation.XML | 548 +- .../Unity.2.1.505.0/Unity.2.1.505.0.nupkg | Bin 303876 -> 0 bytes ...icrosoft.Practices.Unity.Configuration.dll | Bin 86840 -> 0 bytes .../lib/NET35/Microsoft.Practices.Unity.dll | Bin 124216 -> 0 bytes .../Microsoft.Practices.Unity.Silverlight.dll | Bin 123704 -> 0 bytes src/packages/Unity.2.1.505.0/tools/Utils.psm1 | Bin 4656 -> 0 bytes .../Unity.2.1.505.0/tools/install.ps1 | Bin 646 -> 0 bytes ...crosoft.Practices.Unity.Configuration.XML} | 4875 ++++--- .../lib/net45}/Microsoft.Practices.Unity.xml | 11826 +++++++-------- .../Microsoft.Practices.Unity.xml} | 11844 ++++++++-------- 19 files changed, 14563 insertions(+), 14873 deletions(-) delete mode 100644 src/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg delete mode 100644 src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML delete mode 100644 src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll delete mode 100644 src/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb delete mode 100644 src/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll rename src/packages/{CommonServiceLocator.1.0/lib/SL30 => CommonServiceLocator.1.3/lib/portable-net4+sl5+netcore45+wpa81+wp8}/Microsoft.Practices.ServiceLocation.XML (91%) delete mode 100644 src/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg delete mode 100644 src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll delete mode 100644 src/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll delete mode 100644 src/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll delete mode 100644 src/packages/Unity.2.1.505.0/tools/Utils.psm1 delete mode 100644 src/packages/Unity.2.1.505.0/tools/install.ps1 rename src/packages/{Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml => Unity.4.0.1/lib/net45/Microsoft.Practices.Unity.Configuration.XML} (89%) rename src/packages/{Unity.2.1.505.0/lib/NET35 => Unity.4.0.1/lib/net45}/Microsoft.Practices.Unity.xml (94%) rename src/packages/{Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml => Unity.4.0.1/lib/portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10/Microsoft.Practices.Unity.xml} (94%) 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 a81045f04365982b2087405506650d5db5ecf19c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37216 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 iHm`ra{pA?5e`RdHTGSu - - - 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 3f8895473ed89243927eb4d1148690ca37a500c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29760 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 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 0df5fe3fb8dd965421cac599d916c07f5670135d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24064 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 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 fa752370c00811b614216db5e3c3bb4b8a2045c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26504 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 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 9df8362218f4b736b2c1856e8ea9d1f87fe0ad65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303876 zcmc$_dpuO%|36BKO499}5L3EeG*p^OOuA61biaAmRw`-IbQ8kfiBchzqDWIox@o#G zmDov02&txsP2)b888c&M_UygaZ~1(G=bYd7oX0tjbN)IW53~1Pd+)W^dac)bU7oMk zYn`W2|G@@*f2SWma=o~q_}>mg1B1SQQ-iSv$gzEgj!J<&4(&bxpE!QN z|H$!i@Rh^IUF;5=IB{eln|<8(z`lUp$7k`6>^lta?B^c~*nI+C9`j=#+3m~Q?YECT z+reQT8;<7x=)>;6_c?A;$dP^jmmUNBeUI^v^Y@>a<;xHFpPj*R!R{O#*bW?a!0yBT z`}Z9`VK;8m?qh!YPPo{yHy`#t5i;v=;PE5-eC@`q-0NbuVUFYcdHWrl<~T0k%$d7; z?_Rrc?Eg0(|Nk@{cEG+9yZ7!sv77D7Keo^Q$T9f#u@nCLj{h%1``?IheBZH?{=WN; z|KGmDp1o(z-o5+h%yH!S&YjEg-9LZt`~`d93}(-tKX>0;hdr~791qy*d*px4Z_jRr z*^UdG9QOD+&7V7W&%FQ4kNw|P%yk`Pmr(}&3C8J4BiefFc<>a<$opG z{}aD-=9>77U70v(GCSZ)D7H$yO5AYb?!ePNBPag4ym(k={`vBjtDQFf9uuZLnI7?F z-XXmA&roWp=rAUjp;-(2Iquw+7A&i1Dvql*g;-c=F@NYz?t! zHQ)Hyja@T)j%|M*9<~+P>N6=k=TMKZqi4mmpuj+-aKY^A53fMzW00A z_4slkcxC?6j*bkazcga|+*kXeN#5OL@y~T9cG%}`O_IjEZ@z?o_FH~ZVoVP}#jdAv`y1#wL zXbWZU^kUqfc{b^DVbm|5#E}txpT3IyU-WmBFWg*hG2 z)yHEsTh!+#Uw@EsSm@!OeJlNwPn3o)@)S=H6Hn^YXx}dHioLA1A+mUw?ax zbo0%Mfe{bhY`erF)E?Et$lt^-hl&pQ9_it0n9I&z90)1y%!oe306NO6hs-`KBy;4LZ{l zG1Z*jicpC@ZLW4N_I}PP#A4FjFUnx{rxOF86bHrKiyFG6FquVjp$rD#zi+sy?8{!0 zvJ4F7Z!|P;f*bCT{~q?*<(uX>vDf_XB5vKW-M%OKbM{$@216?caNXMEcCu#edz7eniE$u)TeHaE>*QB39FYol@{X){w?b8U`cbk zP{CUSoUkrrg3cT?vWNTuZSbq8n2?JpGc*qIrFe`LUc?_KpiL{TGG73k%NaD@c(u-F8wl8Zi6Q&n`n1Oc-6$m{XFX}t^_8ojl znh0E3NAI8O^{7m<#!Ha`zEFU9HRet`T7}87)DpG_HCxv@rouVRSW6 z%*2!km79ST#uK2L`AVq&im7rSuDFQz%0LS97}4_R8hnkq7829FClir*;|<~(vP*7F zPaF-@d1}AU6-dT|@xp90l&aAuxICb!*KoV@Kq%UEs`dlO(iI}Sn8{t@C#WCOP^^n2K7`3Ll}Cv%XfXN#Xxe~)s>grwX-~OMsIH~1dbJf#(O{W~)FNK4VHXMhX%tXb9T_Iz z?Qg!`zM2VYHO9MS<-(P`kmJ%>^easeJ#Sej63fBW&U15A5)-^$)Z1iaTPU)ncX)>` znr`d?fPD~ZpXjlqivt3ZLt~{vwWonXT%g_Csb4kq!N3PfSDbS0rrzO2GB+7hGp6-t zhUzz8TOuQ+Tk&Cw(JrJ_ED6FiKq{V6iSJSx%x5xHwQNfLgh)jRh65s-#4P$0j%F># zs8E7*Ld%IE^C=Q9>ScsiPRBn=Fgh{2-flW-_qp0HdI^C@#dm(6{i-Vu9K7RWqj(jX zTO|b2%{OZJ^p?4=5hLYun`}u4J!I5@wrYf}Q=?sjhiIkr!heEgVts(B3?&WbblqabP zNRPBJ)V89ptD|?%pvp`?)f#$|T3*X2zW0b%qq#(jm@GV?EgoKmDB+m1T{%j;8k7xWgH0nFzzD@?gXt3YX@U6 z0h1QO$X z0PimxI2~tzT3VNWt~_bnfGUvCB(^xsH5@@_lf^Sui$|CLnNn_jVirp}1#!%GlNFz< zpS|Znk5>E)9g#+!UDAb*yED&d-b64ffzl)-VNWu_Xnx z{;Fe~Nl6i-%Wg7)ZRvhqwvY!^}?<6sJ18#6yy@kgkWvLKXbaVG;OaLf{H;w45LA!CVtQ<}O~5 zkA+F6z^&+s>a#Feriaf^MpY$TPJX0y8B`5kUWe#Kx^lD}sWr;cTZdwmTbFR|O&p`< zfUN1?2IKW@VtqP3yuR=1Y9F<|sbufp!tvkK(kqvQL+^yRSR0;X|hp^&1lfBI7)3CP+VX*7A!spy!DI7 zjP-i%-2*Kjt~=`DnqEOl>I2YH1SDiYQfX2EiGAf$zGn=z>yK#5so_*2-iUL`% zU|s3OiGfdft)`@)1!wq-lpa)APxM+(t%uE0ZKuevJN_RHcg+!S$fw(Oy`D&H?e^lF zQRiItp%=(!FEX~I7sB`8!X$1%AGTs118M7EC0Toyn9!y1NAN}xZF64D5A1L7KPqE$i=c%%GMR! zjBM6fuaVT_oY7M(+$T`6H%o>*OJSf9z2-cqm)usa~57!?gLyvs3`e|EBTz zyWlR}@+zLea=5PP7nnG#Q*_rS?dIw-B;eV3FRrcSB!9$NZebc!P#h(3XudEx-0-4nx$ z?`tjT77NgQU`LMyUr`tj=9NsrE$4g}YP>h&QR|>GttC>Tu3K-#=7hh~2*NxO`mDAs zX+r|hmOw!Hnw8BgZm{PwBsDp_*Cb*sXvgF!)M)%CfY!;9`RBdya~2z!2xuyh7Wq4m zI2On;|M8XD6^DR^>^k7W2a{N&_+i>gYtJv-ICbnVqiR7zenH_k4+Yi}=lDDL)>b`nDG#_=d{(Yab4~Za&)!uE{MtJ^ z8=L#S5f)oEa(v?*ZhxXji`F5M_&WmbB}KS`=l0Rc?pTkfJh{ROyO+M`Rgpl-?7f9X z!qp2M-taE)Pl2jfid}wP$p0{AGd9MGX}mn9khn8z{uPmd-b#LcX`|R^usCsB_++0k zp~J^u=)eLa%lEEYhHXZG!g~D_Q3&w+sKHiJbY=9yiSu!1z2!tR{3~DYi3YW79=7JS zhGl34=HZP~@T|E$SrZ?}{QDWYJV4#ccvecpdZ!h)uB7S8Q`l$Y!RRw`Po|%9#m8do zcH#L2y%o=w6@`uP$O|*S)W36<2V*t+fsswZ^w$IsFK)T~rvR_Kw9Z&%F?7g4$@tNv zlWS2h`qA2am%O>BVra3ide9uRxYo_fhJdk}uMZmOv-NTZVy*};N=)Uq*MAi~UezEs zIou!nEE(5Tyh*DLk>j?dGX9Jn{YAzf3;K1Hdv%v|g}F+KtPK8RxbvA|Z_t>@MXW;% zrOsyVAWPp28uiO(_&xqZd!K30gVVc_H-||$iQ6_CRUyRIU)YuEkN5)r#*TQ>X<6bV zTkYr~)sAq#xsx(af;=9^}%|Ud#u=&b$0;sV#yi?p( z`@nO~Erf*5N3sK5s;FYEVbN~d^IVT}v9BxnGs>p?EUik(+$v>;{9YaVn@x8O(c&M^ z6nju_&uFsx2Va_eI|Jx)-{`Io`B7-jwuHPmWO$)L*s_4X-_P4PBb=Y7vt*~-8W`q!HuL)tr?a? zlntEx{iD$981xgm+5v7vgP{8WtW^QxCId{{0A3p3DCiHUbJ|wUM=tKj=+?+9_@vb2 z>I0=VJY6k2;7|V+>TF*#X@3NG!Q{loJoG}Z+Bx(!c(vsA(OE{CmT-M-G{FpQ6yd(w zF4-v5I)C3cYmJ3$PB*ujDw!-hmtP#RFjT-Wzjpt^ZP{NAk37T@63v`iQhh;n5vd|@~dwo@D@lvD0A7Xyun{CbOuYssOq(E)A;>xok4zcht_<&TOHyE(xFF)M5 zpWaIu+>pc!b)Uyf5Bu^mB3^quF)lCfe4~EK*)a7KZ`E?V?u$89y>twAkz*q2kt~#f zM+(i^e~rJ!sdP4G;mko#R@f(jN88d$uxx3D^=`1%xEJx=Et$Y9S{1szcx-`8l^dUg z8*jSN^lfu}{W6j8n7 zHcZl~%J8#>NCRr&PP0RM8-jFkW;cjQRm8$2;k~?I%YZMNm?g;vOF+2Ch;Y2WpiP67 z3Y$l7#8OFua#C;oB4kRmP2$JQC~7nPNSpM{aF=gMBW;Y2PG@6&Os{56sh$-nT3c21 zQ#k&2QHM_S^Yu)D4wyD3QiM!1w7xbM)4cdojp7-8h2lQaa#VxD!zipAh=UF zaAwHQ_nCIp_`5xRZ-Q1h(N@mE(YQXat&lsC{q1U@(3{?_s^#l53FE!wD@D;9|4sA) zRRzmql{Bb-CiCwQL)MJUhZg}+$xhtKM~&~eFOhtJeL(t{Ss=Vo3IG!Usisb zU}Z`NdznQ}O(7CBE3f%Ma%}A<>O2duk9;Q>k4!o#COhA($6Y2oHMSf_1gW*58D{yd1 zEn7{{##9}?H!p4Vqp+a(JiQ~+jm#tHBJKmC>T!7o2LxtgBgr1b5$Rd-4@P@tJL)A! z%yBS*LRHWhelbkW-uIVML6szGmSN|2{bC&dre|V?ugL&h9p$dCpslv;VxYp;Aq5@z z{OUKdsyA3yCT3hf24;)UE~iH?5h;gKd*Jy(z}t-X3Rl`gcSt5?>VOad;(kjeUMl%X ztitJ!5nj79&WB=g;bptkNmUjl>`AWrKr}a#h+0AC@S!6hhtBIxbWL#%&ZXa1D9!$E z$x!_`@LC;e*dSPin@&jZN+&ReXSdqNoykhUZ!vWKPob%1`oHp|BD|he%vvO=uN2EN zkNwrCw@uwf|I=S8`u*cJI8i$%=CV{LR)#VGdCj;Uqjx+t0?TSm^7c%A#H>0Z=g&CO zq-?QRcVp%a{{n%7nFuqb?^^|{#k5oTlQW%yT+8jj#wF&cS($0cXQ5(Rg_^B(%Kw-~ zG>dCV*YH|~T-1nP^2k91p<4CCHSFVR=$rG~r>s%)>#2pRI#z$bI!JaK*c5B%<6 zop`j<2hUt@e1iLurBqg)+W9-?l;y-dZ*pMQ+JPFQveKXU8un(aTo|#BREdSmjv)== zXJGe1omBl>Cl;bXt4nY-Ya-5^|2b?$(z~oPM4Nbw4P|wI$E~603OQC6HQO2(=IX7X zol`G_j{>V3*59)5$!D+kAth2i?SUH~n@zlfPC7nxf(}P>!7v*}-6rQO50j_3vBF#7 z9-eI5N~{K3lD^>h(9(_xWr$kj@Eb%e@mP9)RS`Z~F#+hL0d!0M=A;qRKCRbzRTUEM zYnX9R%JJ#Z_cYKJirm&;S4Ox`RA9xAZjt@4CIZ2rwU3YlFc~_m&w2_4Zs>T~1xohD3 zPQ&@JuDVvtURh#8H*vEC_q9>)78t0uLO%gh^L!e4Qat}(ngub6`-;h~>6?Z4m=XG* zi>q2fn2RWSZh`LNaUR~wc8fuHQtZxTZ`|oh3)~{IGNCta252IPVORljbG508eC`Evv?~*7jH~)J(C$UsJ%SRGfvC%J zN;F{+Hhv~89RE@ui`u^E{44DckWSA(Xe79s+ADG?>at}R-UzwIK?J zd6T2CH` zhML@8W3qd8qlQZQ{x|6~acc{uu=N6OB>rv3NrcM1KgxtO+xj zF>Ti`{=q!G85YiT&)buGWf^uxwR(J;@KIPrE`(=AoOeTg+qriCvrr z^#HTZx?E4-G4ogQ!8&S5{>VZvS-k#q4-((8DK$6QxX( zSFnl&p*?=;934h=Gc0@_+c22Z&qd4IC=kj`UBHOW$@;y}Pi37(&~P`}8+?=f0)MAr z3aJMFa5_)T^Ndd2cKtW$rFRM^HZM5ulH0=F^lVh4HVaqt6noSVp_`+n*t)D_FmUGJ zSd}=Vd#mbT=M4WOA`bPBP>awJlMlc!ug{#};KH^}8{Ksr%!`6(Ii zh^YlD4(Zr+vM{ZMq+q?aksVUxOL;k*@orl%zoAj1ZAv_KIS*K4UELb(GF&Lddd26y z)MiwP!FWJUqu;3oe?7Isr+nGyzV+VSwlBmjb$dpyjMXYL? zU)GT>i{(&0X`;5lZFGAvqZTo*5TnV`jQ*8)|Ja+yo*EYd7&VKtAw#}6ya{S~No>m5 z5Wc!Yd1K0^noVFqk<$CyAzAX=ZKLrT`05*<9Wl2Vc-0-g&N8|10EAH`$M1oPJnb4mvv- z0&AHgDH~1Kao~NkzO}`BwWR^=NtkC0nF~IC`}46lZ2OVf$WW4>fh}u^jOMjS#6_bh zbi_hx2iD-pqtJfI($QC)%$9onJQ@^t$v0Fd_%;r6ej>@Pr;=|4Qdy|usewaUWgo6G z_KFaKvKk?@x|z>g^-=Ii2o*?glrG|3}_=kMq;e6uvHh_Qp&5JtFr}kMetF%(s)j#<1A) zC)V_sK;!@4GyAN6f6=0(*x^Oj+oJ5#y`G5me9WMM3O^kguT=&g(zk9XAnJ>u|OBAmd0XJW+x7#V+?f>n;LKQ5Y?;dPt3+ z&IaGc?0j^~%Ld&kwwWMZ^qyNdG=6Wml)Y&^F9~wP%=I?0%k>j&ISY8tSqA>tJL^Rf?D>XkqlGSB%b!u}baC2P4J|Y@BhYh%DVU zq$tW#Do(7T=XrzIFEvAdrJRl1ufvAli`f5(`Mi~GDQD#yHCO^D$_sr|Dbx-KA4d0U zW9ywR4;Brr50-kJo@u2Sy6fQe$DP!%-RTImap4QRDP!*g5z~Nde1J;L^V#@POYp`qXO(*l|71(}}frEJT<0#wz&k!8c_XNzVDlcrG zs#=euoz*dI86X(mUqH6YDCPf-h4XJ=DG>Yh#A$H%>LAlYrH>e@Ra* zfnNi3=?7zMN)aubGs!IhdNgnD3vdgSENEIf1>*jyQTMGS3pRWg zY=Rc{h2Wu%pM|Bob-}Tgy4tQkb6omJVBJZH@*{?~Xr0RmeBFB8JXfDkttlGt;7VA% zCiMaVhRgLEBCKA;&iZ{0m5Rupg2r&p;Jj)!1VopHkr^uGf?|g|MnAWdoCP~E`eI`B z=d(Z^yq)(e8gM4KQhXKf5O)--J}Qw*dmgWhUl#pyP{O#1{CT5ZC@mVKy?tToQ~x-$ zJfy`>ZfxR47VUMxGBb(I)paw?HSMjYWwg*_Z=o}l-in_)l>eZm#) zpOOy(1&`kIdIJ0WwMp(|_}oR~rpxs`_K78%xku9wZ6+8$qKol7*WRb<3y&GU-Gj|P zUXAa`b9$XpS;2Nwb|F(cBo$gG`n5%*=@uSHHjdSOWTPUp2C{raoQ3zR9v3#5D;0a>w))Aa9-UmCCId65mzW@N3hs zYfa*&n@>@fF}FK71{KV?*(H_b$GYvb;-84Ocj&i3XqjxH5X{)r1S@qazF0y+F-un}J5O$c(dNDz3e6AyWeULuT z9e;AzMYX{kCa|RYk5hLj)ymw3a(a%d~M?&8Osai&zG6#o_kV0hm2;4To zVr64r%mvLleT}-*U&SHSGpuTbn%YhHNLt|y(*s&y)UWoq?jf1J>@f@qf+lag5PHxi zf5k8>f-J{u&Z%l0nqj0+0|6NkRtJM9Fi;yA4Lw&zx&@yzUn(ZZ$Pa75qI43Y`(oE; z=luZIoAA?lOu$LZca?~m)o^~(IT&I*b&!k75J|pZ>RT-K!YTLqc8*2j$1|o|EO%9{ z`sneo{5q`_(@kl_UvYE%Gy^?^zNeH8YiZ_?X6_K>msEf^ErI7@qUm>ik% z9<77l4B4l!J5LoNvv?!BW8i#W&vc6&5?cg~;!u)D)l9_j7UA;Wk8*?qDj@S{<6x=; zK6gIYao*&`u5JlsUH$R1(0=O3gW#20*MAV9uR>r=o8S||i&K4fH;IQj1GBPZ7+L21 zdCLxeFBjXOHs_3UdV*>zu9<@?h-Z(!98>Y0hf^C%Mp2&p%ylpa(|EQH8}B;PnZ;yj z<@c41gq2>-DvXZ#8Vwe?{(I7u;wX0i(8;;Q(NAC#lxNFR%`qp}r|<<5-`!L|Sh428 zma(ktRC8HlL2Ifxw;)>jHCiB9n$g`GbaLF7sZ7KpEVc4&Z}OSgMDFI7`hS*VI-a))@lfK3~smz~v~sN|XRS+CAxABBc>W;@A*%Ut#ct;_F(JB9U#=};3xGR^)D zV*bJ;yoXhLJ$5PGRFNG}M3xW-xH_{*_jFn5@xW;Iz?+fD+F2wMiGHYIh%|OvF}TS3 z!FNmL(}Jg=SXT!&S*_z?rYB_y$kM-Cq%m~J&yPCK%RtM2>Uo*l=auYEa7yD2^q=fhP84yHbk#^+SLxqnqGrj|{+1TymIM(fr+_q_^r5W>>8U1mrG2ILju z;cJFtIcna~UrT>qy10u`H6k*9}ef|K`P(8f}7ojG;m zoe|k${?UU9QOm`9)o~~BPp|drfIhL#b1svx>GTJ6e4pArle>0z58BQ;P($Ac=mRAJ zOy+6RvCIBRzfMBMAU@e}2_a2VPU3g}a~DDuZett1yYzFs5=IAz92O9dp~A(k3}{HA z#``oQtx42ftwPFNSzhdGO+@+}tA#F@>V58L|m|RZ`Ct~{P zUWE;~=V@hC_Cl~)_li3SYJ-b$b|_3jq3MTbDMg#uuCB+D&Q{l+K1{Xx>RVqS zp(^VuLv`gJWWZ_0oK^ckzo?BM?$Zu$4}%^LYRAl{R!^CXUNMv(kM1~Ojl#lH34g~w zy-Bz1l8{M_A|le~wMQk)brWiMe7d*oSKDvv+L*&FK}^*A(eBuB>sM%GV6y~SYO7l@ zI&OIX5n{RQhh^I>W`}mDXVDLlqvfb~pAo9dV|BXuzjnoC)Q%4wUJf(Fxarf+#JNLP zpKb=vT4c!Q_q`CHje77j11$8$FXyGPSk>`OVx79F4k}s}b^8(r%2}Y#XFglqY#9l6 z%ADI?{m+kUBePO`*GGAwYc##cehA5KE#T_MV+L#KYSgu||Q81tJjW+a$DuW~uZ+xrJnF z$i_^mfBi3FSM%?gLXY-)H@5_CU+v!R)e^XIQ)xwSk+YV6?e^2slRH}l_R2tSzvijo zZ*N~KRB65liA{WEvtNRV`AdDZUeN9OUL=r>T|_BRKj}X2na7m*()Z~L{5*^+N+lUu zA_?mODic})e#=zRlm^rhs$zO0Rwa-pF{dzZQp^Mqw3K;(@7)eE;aC~SAEmg?1T+90 z;=*_cm_c4Zhc~eGXF)!u=h@I~HuHp_lIU_!#Z_bVbRa_lsfO8%weU&qEy@yC7ZP%U zx`Z{csWn(@W)4zrO9zAM3I+}$&O70qi>1$lzol~X)Pd%e?O@@6%s zr(^*QgYr+?`C+JA?5=MjQ+Yc@HnD9{=1= z_1mku;!(KH6b<~iE&4RGyPsTCU>p}DUHLiA#Y|ject^ZWS%xF8yH;iBh zAAGRPZussiAI~A%UX9tk1>=6R^MAVFzNsqnVKH{gitab}R5}0agoD0Gf1VK~{GO|> zPlE?KIlYHcez6%kWBiZ@tv6hYn*Ie=m`%9CTh-bjo|vUh35=lJRgGhY^u#<&T5>b3 zw#{_^ZTDhDZRHFvo01{MljyCq)z%^7CZ`SM&KXHehN;i2b=Y3x2JRXI!5`y>B>dde z)5D(sBOy-5c6-^ds}FsZt zcPqI}VGiCTQ3$u+OE@?n>Sd2#t_WetV5(z_;XC^wCMO1MTxk+~)Q$0ZVYg)G9@}X@ zfcdKc0YA9bEnrVxN`HscG3nUC)75$RojKF9~OIZ*H&pv z$ihbhxBScwbn`8%}E{kcGH)ce(jUy!u?T^4+WPUwyZw+v^Qpa z_Twj;cZtM|1EMJ$wdb1XhQsjr4`ZJ`dnFzI~XDT)GI=q@412~bMR86$C~*iTY^zCT%U_X_MB^@%}J-=@CdOU z;~!LUE2HrN^xBo9zMiGxapTrwXdEj8Y~0Z!)~3LmkrHA40zL}F)q)lF)HxNfCjtM1 z%jAXc`uyl>ESC$DW7TLJew|r^#sRfhAJk3|ygxFA5A%Bt19fL`K_ zN;n!tF&I-%^GAl|D6I_{8EtLUf~dUjG{Y3|yXA=7n?8zf?%`2xcwIb2rBBmE( z_@I`u!V6`mD`E&k0cgi3FtBJL1EHKJ;Y9>+rZ?l&(43(zu#8%jtbD+TBkit1ryK8h5G~ zX(z*}RdvlmvG*~eyquWCCp%wLtRN6s2M1=;D-U=VUEvps4O`#Is?$4bt|Ah=Rxg2B z3b0FD14XLN_CQZ){nApwUkq50njDzIAO6(4f#`c6n$<5M-nKE5=;bU5Q$fne;030v z>Z2H>x0Lla0hbJ`L_5RwI5RisI8$YVnO2Zii#bU;bY{aAGuR6>?dl z-vOOI?A$y|<%hS;NiMH&D8iUm+-?zR1DOJz0TF;_h-{#Yx#V%+ZFp1#7q}R_C0%-m z2|6dnhoR$}Fc8dWydVK*G8#6#8q8>fkdBa?GT68tQk8abxQBIV3|#T6fG$V9sGJIr zcOS!I5J?7Bfvg&EO7h8#|j+t=;(NG({b^KaPv1ujseKj8^sk&-pq>O$C z^CdqL^e9^G44-x_nU^YPj9tDB zECyugn`mw-AR&-u-V=lw0X5u3@s8K98+SV?EBK~{UxiGf)qGefWKXLz5ecNAK#9P( zOkAP{uHQvKo@dBhEUp4BVL9gV058Ies-VrsBxA$XT9ZlyH>P1WMY6WLM{EoWYvLfF zvJAsUE!DX|{2>EqHAIskvllbBc&qR$*~tSiHm-Dp>fx|8JVgsW0dBS zR!AtsZZZL|f+U)v5>L3NDiP`|HsTrhSJ_g)?81wtVH!QNuuY~Ro$|`D>-f+j&0lda zq-KLSe>JXin$1Y#)A37f!V5mVQUfUmFNy`E^O!F%TEN!{p=Eb!$wJx!PIeHjj%CP6 zv1*}O+D|IDx4^I&%Rn?1%sbr4KZ1MJn{mZwodPgJFG-0M3S%58LrBxF*v@K%xciW1 z>79TNDfOZQ-7c8^okpo4_y=Z+C_TEf;TRNTo)C(Gf${y2TJBixo&Ifj!6*urHI#LE z0V`lDqOvd-DhrmN&0!!UtY*H!bfq_)NshODXDv8se;WvDsX4bj7BV1@q{ z4w%YSOYh>`zhZ5dE~iCoG>JKnNP?IwG=S`m&y7*g>+vF3L1iLq6mq-8V?r@{5MDGC zsN?Gj5bUq;MKMNaP-20K*QrFf+3`5DcL!G3$B%*@-dH(8G~>*7L^2$xV{}4pmpHf# zqtC*d3~wxC&w)Vg2S+sps98z`YY{4<0I8Nqgj~Hi_zPwuM=)5sR#wnlF=5cLH&8|v zS=i3PAp53Am%@rKDheJ{y!XBCdJABMgkUrjzCl=~KpV+KB0vDm%D?8MppAg3wk(}l zHdMZpSnC|5B;*|6bd?pV<}uIU{#ypVh`0(9I+uG6!!n!t-V?*Jku(e|M|>0ClTJZc z9LCXY_5aE|Ammr~HwYLrg$`3&?}BMsQlTOTxMRb@d;I7kZ48*07EX7A-IW<^o>QclLvlVW6GRS;L}$qBIk&<|3erwFJ>&K;$j>Aj9l{UZ}+J zk^-)R0~533_+T=a8!`c>IK?;@7K$x|DOVca%z?0W#)+vQ#>$KF0YyErfR4$s#n4sDG~? ziB)>w;nYa~X*V!^kO3tFLr=@%KQ=Z%eZg2^%`$m3+(?kzB6=vafAp}C0I5u6AH3?s zyeHZ#?)A~My+R+Do=&t(VeSyU#W(v=vfuH}2MGPqyCqR_tX zKy9Uv@lV8JkX|snBqMq6f00HPYPfF))HBTJ`6HEW)jBa;-0U1pLSJ2IZqP0|xoJ@6 z*hzi*$WI|7aHSV@uJ3}&r{}0-tdQ1tDh|s%BR;8sBz29Cj}+hLJP z$__x4rHQgLV;=6**$29?0K$blGbf$yiS zVGO&a&om05#4IQ~-SB+AJ4QQ^Vpgv;H4ol{=yoQ&0@jq|`BG9WAg!rO|D|0|axdX~ zJ0X^Tr3V4OgbEHY_J(&9yx23cULD&fT#%;^R|}Ky{4_)h(z`sU#vsq zJW4`}ak;Nr2s3o8z-TZ@DTgO~G)QOaP>o2Czc|x?NC@Ud5Z>Ye@qLYHvk-I_qwPYS zq)(zx^3~R%aYi~RM{Az|t}^5$M(sSQPlJalk#7YuhWBp|GW%Yi+}&XQrBCn-WIP|L zOtCob4}CWzeg))$SVZDoBIxCz6psoe#mXia3WosYSnSXaM%0u;yY`6rm6NezVTeY& ztpma5>O$Lu+--myc@;a&kZJ#+$x76kl(N6$j1|di6>F`vLatV<^-jQ|p8mp%FxnFS z+@wBL$QhxP&O7lD220=8V~7ys=3POOpRo%M$TM zY^812T~uR2pX*zVO}Ks|T2Lrd!_vmLsKx@EgV-3kDlg5Jd5FY}?xzz1tvC!us|WoL zlCA_SruB_;ZI>k17Fj~F+$38D(QuI^8QT?wgX|+?PpUcgkaP*9#i-D=bmv+!NPUt@ zQmJTYJEgr*)9iC*&N<)zo%?^Dp6ATzoH=vO_r2@y_kQm|WdRU6eIn=I$7@ZBh!O-Q zu_huBalKiq)l3j;M?T>GWIV`fsV-<$?#LYk=j2-f7p zc#=)h$|0C*fYI|HoyqX1haTfKHVqBppLuCMtc^dmC zw)2gE`)HOzLRSIzd4}5yzP@c5t?)DnA!C_ul3(UtgW5Z?iWu%StmV#kpcR7qsG7BN zfI{I!^bgz_FxBH)r1l`{(VWf&5*N_iqhcFc!G|!tQGOieWvWRL1y6W`gYc^nLrm*w z`5gn?6R5on{J?fr;Rm0<#;sx%U=_}g;n2(B#4?f{g>qzYlX9)x9_+W5Np5J7@_$0o ztCe2jOwetCVlOhf(9Z<#V%AQil_IcgNpPc^vB?*{3=gXT zk-N^B{2<8NgiTRkkH9)hz-+)z*Fk90pH`p*#GNJl3do)Wz6de_OhaR}tH`;zVM>ZStp_ z4I#s*200f7@mI|R&a{9Ghd~U3L4*WtoVYjlo=^*eVSVc~Kq??KtRmZhZ9kq*W(J)w z2{DLx5qSBxB2|B+2T5dhFj2dkp?b%tFuLq+mY7m;E5zM@-K;bdAU^qnKDyjjat>Av z2F4Ya13JY&x)Qj!I$i_n)DU4z#qc?x0d@UIfPz))r6@APth?RwHu^52ZQ%9+dhzWb z2Gru4*eGRroSl6O5h2c}AOwhoR8lMDp$5w9*8M2cW|c4Z4CyJzly^X?0S0*$YCypL z#6#-zo@6rtA7XtuH#kKnoWpJ8OrGL=Fq&K%8IC}Jo5cBK+|!j2$eCmXU$Q8T@TcS> z@hp@yfU>Z5k`}_rqyVn#b_>B@K(bv>P838EFsV>SP&9eKlMMVBnv(EUL;XhlBv8B3 zXN5TxrpEzhPG_QsYG2or_1HaG(-~tVf$cKQG`>XKsAy{HWeKO%){Cwr!>A6 z<#Vft2#KIm$SA^WIeA)(Qhu@?vZy&|UEwj|SGv`gksKHSv4|NpR-YINa_a)2C3wFhVy z7`Rnbmj(>`N==5@g|rTYIkH`OLHS0>Jp!BYlw=2@LQ*HJWLF=^oWsa1PViiyQA&op z=v=n2P*!@2>-HGO5=k)kfSF52{?5XxNXbXCXBn=NssdVw3x9BCqOQf0(T#)W`5~iY z#qn4rH#Qwvh?oupo&n-@LXLLYU2qy9Nc(AQS`fIOq@|-G zc4u3ZIGl+;P>;b*rJHP<)ewT=>+`loBXIIjU8ATPC?kx(vn{()h|10+egN?^fv*uT zFYss!W^y#8CS74t8iicaRHz>M%P@EoIjsrV^CuPr;~t#D3j9u ztU}JTajAr*V*u{Nc_x;@xy%AEf<}Lw2A^qHJdqWGia}UUfMK7a^;Qcx2e75E>QYTK z@!)&lmn7h1AYJ0aZ%;ERc&sZRvHxA#0H*-Fa?;xv1`SLAn0*as6m6p-NHrk9%rO8) z%+Q4ahjBVv*lU12E+$VXj(DK;#W99@mrG%!nJ_?nA3?iZjiVan3@D-xK870C;$Kq8 zG~#gfe};vkD_FQ68HE26uw`EGPmw{y%?9L{UfdFZTSSH+E(X;}>3~3%EkunXvxljR z4F{iwvsQDAZaBt9D`lzMqiYGxay;AAHlZKqiXM@t_@D;QKBKo1lrIguM~1{!djetL zgJV7iK?uJ~O(gn~azZ1DM9~434{~~$N7q7AvwWC_*xp5K22V_@2u%f;Dno^fIK>{j z;>lnkxHeKs7;+)hh{o5T5s{P@I1TvRVEIRuxjg`~4{I@ZkvfiLB&~Rju87UjH;C); z&J+L_=n@!_Ye>T}IFdW3V%t$8zDJ&#grHecfp|6d%O-KHl(y2kTxRQt!;A5|Z+xiI z70^&f)Er>!BCbjyG`oy0L(Cup767P2da%Qd$wr0ogoZ3dlQY~anKV8`p&a+y}*-@VXi20PJV2Wj|65Uy6+J}w`J z8twm^ArG@#J!-E4g#x#&qaHFx1HebO8m?Ll*j8524i~%5!OZo60ZTUkCi#CCvMT~C z;!7;#`hi55e}X;agLt`co;e*gaz-caMdn?e3+_8#a)=rZNJ0{mUFT+WmFZkAD{JI) zzM#pAZO8%_t;?t4EJ72+L|tw!meM_1h|iZoK?<~UBj3bjW;z$_)_;`oe2)X2z5mEWEB`NUxmntm>1fsnOIVlNUJ8}%0M zJ?IOl=ie|DuxS-_i0}%CR?YoUBl??U4XBh@L9# zya8RK1e}SbrE9Ut!6+3#l5z!~fB@8wkuSt12`vpU$z7OkMuh;rE8r9^rRY8*r;Df{` zxs|}Zu@2G@To!@Ppzb^V-PJp?X*a-r`@y|$gY9jT?RHZ#S%4~pv|b*ZOI{>dy`0%& zu_Sd@#0pB4@+2I!i!`ue5LH8Ouu$4fH84t_MzsZ)Bbue8&lb)ORVejC@d+n$RkF6q z1x&RK@)untGtd31Fa%nNs>1 z?)N(|3yfd7QVg0H0KyH#k&@dl;ZA_XVVFNSlZ#kJg8jZlXq?RQUC@V$c1;F)Q=K-K z)p2i$XD>j5bb#h)1Utr)Q+LF3kc`^Eto33Q)Etu+nal@u911y{*02P2U_7#nbG4kA zJ3#_*+%^j@n)@8q&VocN1$c}R2Ak4ga+)IG5|h|=lCFX~GvtC*ANHRMqv$G&^M(Wm zyZY1SRr!2?CJTDe?am>FWF`g_i{BA|v&89qot$a;!-vcJq87ll#zS5TNsN}z7+9Dp zaL#}aX?Q_SB)bbDK3e#Kv0Y?`%=XZDX#*G<&<`KfA!Cl>N<0A;x_fEn@M${=3H8tib2MK;@Ba9?$|hRS{fAB@G0> z;Rn{ULq$Oza}RFx5jp=5_Y_n~;z z=xW5e5;fmw1eeQ|LldxnUhx}mBM{(c;@@Q3mocgEqZ3FLVg)6gPISn*7#Fa>VVp?; zl!Z4oRrNszD=vq42AEh$m6AP;X!%CPe^IK8iy>cfx;43!xf^Mg(%uyu_YZ-Ua0@fc za=uo9tH59aXx1NfAEQ%(HV$%C(%~mCx%(U3mV5<@ zg6jhqSOb8?d>A7@1tTgY{PegtT2du{lT2oMVq3DnkG0xtf@CG54AtDjo@i$d3H>r$a16hI zyx52K78igVoVKT>Tnz5}f2GVUOCx}xb0r&BbEZ(zOf~WV^)DdX0tSvJ+p18V+=A{& zES>qDkjC}}KHbbAkbO-1PUn)=A2kZXKua&ah-;rHcK#TxAqE$V7OdItyc)rR0oWD2Y{)RnVDjMCT)BUO05xMoI0i`!RY)T&)TNP-+*({|zPX)ZUCDGe zbroJlv1t(RR3D_+AP}-U6uZJ~`JxhhLYb^G0Ek0+C;*r_P1-61frz*|0B1^P$(7Y5 zmJhTrFU7GNK28rmWS289VyzA|tMLSuge0SJ3F z!z?8W>?@({kOxma)}jX1A;2BQ5W%e(W)VD(FI-R@F2H{i3P@^P`oK_BNjF$VBBIpt zkuKsk!$Wa$#@q5xNUWupo0yf-!7w29;sRcO4RmCyz&6{#g#eEB?HwZBu-Q2zpR4;4g4mGm2vks1*>IkKMeR5V!twU zL{+8|RmD$o7st9WDNMWUw+|?Hc&XgN?{5xxEeV#0@lmaYa>+#9@MhrizL}YbdJ3+K#hHU5`Xp689pcC8qJd`iPeK05a23#Z{A~?KqJwuYOE`Ko_p{)G5_#2t{byzjKWYm1L(rq8pb+Z6f$ICKKN&)zG3)owno%CazNan8n)UV5_Oevp;kD+^TD5kkG;_zz3F5q8z@E zKd#bfz{XK^nh#r>52p&|+E<{En#igJ$?@mKhEe&xIKyBj)z0!piNW2l*!0NX^Hu>Q zfJWkkh>o^mB=rI0SJ~wmX;tIUrBPWsV^-C;T{<^?SZh8u=+k?z zYS9Q@Pfn}rHS0}8lO&{mdy~O$cax+h@)Bt)sr8<+-#x-Q{EriKHk0<2%*0%=B>KN8 zDbkCv!VO_)FN(xpSc9^52BMW$W}s5#h%_%Tdg!~X2DlSL|M=q2^E-C}TP!8V@$dt&B5{Xz5mR^>*n~nma6EWr| z(4yjJkccN>+((Ovc^CtlY+;_DlokkI#7b3G(AH-bs|$tJC@6;jFd_+4$(WyjfV7Y# zV%(L*{(S}gQJOzt^_3SFcAx7#le}a)B z-djYToQ%zjVKbFA7mGTewdIAic&}I?Y9#S~lK~PSzqqUBCqx$slLgV`R59&`Ed6%d zIS9L;d`5!1^JzcuJZ~85N#Yd1wN+_g!^m3+Yz3nfEebqKtZ>*^&H97Y0^TA!fXuCj zd*nW+*{hIm9>EAlzThgv;W%ttD+E_B)6Tr?aAeK4rQ^Z~g)-??FhI~D0IFnLSkA?H zqD3K)yw`!3wD7Jy-`PXYKyZ{~!C05Z?N2yAEq%>> zek_sQ2G+%?f;~!RQJ47i6GB0mbX2h~scv^MrFKB>Q_BbBp$p0uFy&}g(-m&kevNd> zSrVq?jQC74(ktIv`ZktHt62we7EA~8ItZW{vjE4q1(B5^Bd`}Xdaj?zprLA{CTrY6 zXtpawcSYpsjC76glpQ(DPc2a$$8P6em?4)6!kHpt7}(elrPAnX&-r}tRB}G(kPD5r=`(F{1cGT6w&6dasYmtz z<56wETN=LF#!_l|b`#Wx(Qd^}P>DjPsbmpDnnK!z5_vU1bw79j%Vx1e5*N-rq_$)E z%SLL7tr-F_%}{nYY6Lm4FiPTLX>I_1TQkeG;H#|M{?<zGK(<_d*IYm=%|4KTbadnZYmK2qL)q5CYK>3b*pu zHZp~8=Fyp=*(RW21-O;cPLM%>?3LiJ8VbqAchOyh%WT@&ooT2{&nb1WJ5U*6tdZX( zp#hOWIcMHfU1=zGZb+Tn3gW9@@c0p1ZG$gRKY>_+VD$$lo$C;d^jPppK}Oe>KIFQ?*{Qk9A^1OiucJG6-v9sf#lOXY$AC(c64gvnNmB|TE62(YNR^B z2+je0wFk+I3dQe4I`bg{4J6Gr*yr;!Je>{d@Wt!Upxra;M1WaaVQvK)bX*x=N}ZQZ zwa9<*CwZ+6N-kwFD&s`hn;Db@tqgKUj71gFZu{v)C?_iye+6SY?K!oS>NeN&eD@XR zTrw77Zc~Uo)}R8!2q%uf^$~0?DwEI<8~OXRKq8ty0{fvhNG!RQTvR8L6|HBBCSJ6N z5}G>#ALBcepBV));EWDNN?L#T35p|DeK*R?S;h+f6~~5%{wZqVvzx}$VougXDS;uw zyU4d9Y*FC4XBvtl@6Q0+B@rKEE2sn!zC&@N*dSOkn@H3Z7fa|0dt6?0#gc8Rq>h?z zBiJOwT88MCHFC!0X=qRl zv$c1VVMi;Qu{@6-9%!>#?~U(6;f=M}xaj>OAnY`5tWQlFMDPqKAfa}{p#Mr;5HkvC z{2D9xeP&qtE3ehJF)!4lH=oYvgII@ zN&McbXbqsDZ@~Ic2zlt?WF0!gvEElOaPhoRX z@eF>}E;eG&`v3B-&w&h$AYZuW>5ru7-$1%9?uV}1T03j?ZcZ84b-@%9oOd;mnY_-jU`F_h+LL3gNpp}!iCh4zRFZvVbQUxvYl%UGo zO{i;z%9b@?bQfaoFl;w!aWHb8oB zbRf-eViP3ZQ&=tvHrA|JekdP`ERCfP3V@FS{L$P~hQQIy*0$9`X;}#x2h}EC|CL(S zX`$NK7l>9pZ)Va6GB3iCJn{i+DMXp}Kso?n$Xm*-G%*7Fgnu2eo-GuAGQF7Akk_AP zgRM0R)|f?5j^N6g>v<-~H!Y+F7EK3Jy5>hEUn^gz1gq3@CWf%X9s+K?^qd6?w?eQp z1e<$6Br*k?qd1@A2Kz<|`*8+-17tiz>?o$3gwnEIcqekg;!k)dSXro0%Z3p*32`!N z%%{}$KPbGFgUl%PR4w@lfhzaOqK|R_h4F!N^X6Ef)?iHSjlKg>pK>NaO9zk&evBA< zl8;af$NGvNVXeG#A)XMj8PC8vX%`c8ku&Fu!>KwMry>j%K=}iuFO*vKV!lF*rKw<& zw0Rn;U2>ly^C>;LPcBAn5#V)z@@|!}o5;CZbsefEO+s!8s#4MlHU;HSu>STo8sTx| zlLU8W%=T|3IDyHtH(3sHq`rbpK-Cl=9hM>Y>dUoIdMT&tq>B%TyX1hvd(sp#@r(kJ<*Q|Q zF>N4YNGzZYggN*48%Eg^yFtD7O30RAGm10V!^Xifb0islc2ozNfX#J`QkjQGXwW#A zx3`wrgH8?$;Ign;Ohd+1ZL(G=?9H^h?UIPn%8^~1%k{ZKqH`wa6F|2874m| z4>7TaBG826H8z}=s+|Dg%VLxyY+}$5j@<;$5{=m~vC{~L|85vmDx6%y84OU^-ib5V z{2=jY7#i3((0W;C8)iNuGF5=YHp`$3Lzk>tk`%yc#`wW~uvy3yGGOb4%xQvEaNiL) z>$DCSIv7K40dg|D1AA|#Kp$<8j@0&)*{jC6RYHk;#4)bSl9INO;i0{8Eu0a@Tmdr} z>)tryzk%oGM_@QZ&c)*dDw6sEGvs&v*e7S2;-AE<>+OyvwX$c9E=Y~YPN0rpP+ROT z$&3{L0z8|MlII0P&Y%lLMhN`)bv!1B%py95vYnC2o*9Z~Ar+w=ioYT#V;G9fNCoge zjzB6G9F7B4|3pNIj$+0F1E+Rj$09g#lq{thcyo%(pIqOWOQEE5TAi}^y{6pueqv=T<~97R*+cpOR5-b`VO%W#yT!)D1}U7@91?qExaGx$FD`^Qg&{mher5sLqrmpdSEA8S{km5*Rk1tic}?brOj!$}Tq znzQb+pj{TW1DS4-9)!1~m|Q;+b;hP$0lOp;jPtR<7TGIn%;)QqwC|H%KqgZ;8 zM0ZGBXn$COTkXwREs@mROeGnh7L+LQ$h`mFlJP7LiY~a>=r?ydT z2c`h*{y3(d7HLA++1)v%p@NyB4FW5)RI6+dX?A@^WQR!8#LnJ1pu|IL`zu6j1|^>T zwj+Q(S|Gz8Mapu z4+=xGoU(>JOdb% z@*S>jA|)!s&%=$3@)Bk{V{<4d$|SH;9SG0DPIc-B^%0)UHEU`}`XFN_86#fqFRr56 zyt&tn6=X+17Q*k9`aH|RBRdQ+YYwERj2-{QIf1w|g&!ft!(UjkN8A1E4XrY>j1b`4 z`@kz?++tBX&*;)(;O|o)tjh|d^N-zLbz4DEz(Itq8xG-Wl~jN^pD{u-iG_q$35)Y# z@z!_g($xkJcHVgPxqBI=?! zR=UKVi5W1zj>0#eTiOvYJg~?HVekqJ)0Q)YHS_;UhSE4YTqjj^W6h8DJVs+_gV7+z zuHPcUa^5ah?{NtpC^ID zjwn%*-LTmkIMJD`*&FDQF(I7%{|^s*4X8dRFGkPLcL=#>AY`!7zy^4bFfC01c(@5T zjpY)k$#+Rv!o=X;SuQ|>NTrmPmX0IsVZz~_`HObL2>Ia|A!?waE!eaaP6dU7Qib=A z-~yn6z&e4^0*TvE048+HgI^{yMc8VEIMYU) z2^9fbt4^)si@oZNWH?dRCp*sgelCJlQ9alb#uoA>81-Jjz(jf+l?+5;RORxu=x&cW z1RLYVFB3rz)(m=h0jH@W&ivgoqFHvw^&AyHy<)_ke;g7u(gjCY>m>q+f^w#raFZ5` zN^wy$rV=pTthMaBG+X|N(U0a$7N6$uB@V}M_&kRPvUpq`GEFKNaGL^?E!;f^4XIVh zJ6;|WhZm6{OgsR|i%%mLZIgWh1q6;n4`o!0rigR?++M`EHfZ=}c{Nwnp((F0h6efFA*m}B+ws0_H0RSzl#7>g}P4&Rq{E6#_DAJ_YGux=8od{=K)%b2Vd z+yr^8%C}G)o+olOLl?zIfMf{8P{?1WH2On%cQxH6CQTUNc{UWWpjM16g5>U{241Iw za`Kc~SZzk#!xFp#7F)Cj+y)Qez#>z(X9O^lVlO+_i4Kh&@~u`qk(M{o*XVZDk+I%B zbp*Mpplk;;;0|83T=DQhVTCGxcI=Dn>7pFMIZS^dc(rp;SlH3{)J3Voiax?^$M6C- zZQr3fvu|}{rXhJp#)qi3l+12qh?|RdU=?GRyW^^>vS-VnCGl%_+!ClVBOmAClU0Tj z=VHveUqSt0)P{Ix^$aOF)k*$pzWL=p&xD#>tG$z-QPaILqOa@o3#k$HgFTX!<-y-S zQw7q4FE*xB$o=DYS&b~N7nCiUl`o|0{;YnSua_T>$B9QX;$ryJM(Lp~hhNN*{$ zOvHwyGK++x^8&9HbwE90V8)oyUTx!J!GUhRPNi6xzGj_U>HqAsk6m0?!?__frKdw9 zzsjqv2xn^2Bd2K(MZ5Ah+>#U9of0*lz0rBWmfC@dnF6aP86)lbd6YYDEq<;$QNE5_ zykPM8F;VN%-4bT zV=va<=yF!GYFw|K?`L+uSfl*cu_!NPub+^t? z>{~@m{y>djPmIszVWyg~E!vEL*>9IM%baeGz81ZAQ{?McDZLU!PCxQq-0{|WyJbq% zVTr2A?M&M!t&g}oP!ZB8BcDo5FS2evRg^wyq+#%;z@=GQyrr<_YPT+HE_Ak^+H2Du zm1*+I*`rIk{=o>}WQ-j>adym{-@AzBJgFGdC2Xh9*Bw(1-YM`dSpVmD>A_>KH@c|p zmPx*Np#*9k;#@Q0=4}>-KWm!quPxcIWk_}Nyt(Z-T`l}A?D60Dy1==NqIvgn74nh8>ccxOdUi_n(Gsi`dG8)=o9VT$^};&Tjei%f60o;XcBCGoG?7_ ztpy6YVI(0rAIfF z?s9o_f6JhqD;&l~t3>0}ZFzJ0|E{23xK5n)Bwwl;6PvL~TD|tY_4MpS~m9&8``~&kz5$vh$HQaT88g9qf>QIaj`W#eS2AfC&$H8&MZ5J&Z*Dl%b&mTp+}*T9U> ztH*1I$hY;GyGD(DBHe6T|JwTM89UkiplkI<{q5!!-LzHw98E@UIxhK4R1f7Z9ls%D z7q|M^cuD$3!N+YM8>cX4FWn5DOSw&UneJ+E)oXXQC}Gy6hS`Ug@ff>a-tO*ehI=66 z+rpi{_1*QX?vQKIJG6e&_YL&Lql+&0eM_!#X63gB*`8}@r~uzv^z0tp7AUU%-KKe* z^io)0Q&RE`+IpKV?DMk(-&ZdluW=r9UpQU(@$oGMm0WYAw8Qlv@5oDY{yevok3<(H zW9^V>6LZCPpR_We)*Fio^NdrV%C~e$eed*29B0fjNnf>caVhhf91_=TUbDLgtXnj7 zyNIQ#?r~a=Z(}+x96IH!x1BVCcCJ79eR=WkXS&TG3)Gt4JM(kOk;l&SX9KF5OD=4S4Lx;b&#f8W5l(lST4A#p_=)QNT8 zR$+aUx9s0nx7B~a(@s}c_>4T@-Qe(IEkd_;b^Mmv^V+XW0#5ULemlA4(OlKI%?(YP zr{-)wxL(P3x_PCa>6U@_Z00-NPygznJ(${O=VSZEo)GOBKWXc_3wM?Vo|U{_Kg0Oa zrRyIPZ0%wO|8r6N`xQy(rQ;*JcT0F}l{D~()YEAjx6${Y0{xbArAv4WQFqX$_O{Ju z`_(gt@vcu6eN$N7PTG@sCCgvqQoOI?rR}iDeev5p=HMz8O|4=yFgdOTeav;Rlf=yFk)O_j>4$%B4py>u~u zgj~v6L3tfs(LN+3bH%2w?hdA+>EA*RCqA^N{s`l#Zs`gQM@p+P+jkq%>JLoPnu@K*ybc+j~WrDIvq@v^fy`v*0M{$$6#^?CfzajO~L51Ze2 z$8A*8CD66n;omWb{&E>}`Et=~GWKzs?e}ZLvV5BEm?s<+x^Jtr74MHa7iyOmI(peP zCe^1B7V5daPD@H|$R9bYKa=pNlkCsFnZ)bz=~t4ax%(l{x#L#Waxr;Y)TD1M(fjYc z-*PGc)dc>~mu@$02HY5ajjnluy^A)kKP-CsvyqqOmujw<&b@g&_RYp|?Wf*PUG7-= z?LBXs*MgJ#rs~W&=6HV5&HRT0cT#uXrup++Dv$WuG;{l(y&TmyOi(zoWwF<{iiPJi zhnC(5=(281%I9l8H=`#Td|%P`<_SK>hAl@Mq~o7fTsZc3WxSmp)qjc6t)1{>P&c{i z%rA$3GoP<^u8)1z;3$qL|5X{({z((9`Wp6oBkw%*_x)=&gf#hZ{-Ww#Iait&rz|b_ zA+Rmh5aN9A>sKaT*w~oma_Rnr>E0iVzpUM`&YS+^#b59uY3RP4X;q)U~o>NuK<^+o(xhW4mrSN!MMb{7jRw0-~$@ zj^x(sD@HYDbn~OGJrM2O{cTIz=Dgp|zd40>4U^O?P%op_rvI6GoBB}jm}utS1$3W8 z?!bM&e!2LzCy_O6;qTMVx*YdEkDpEvDF2ivwDuUcHYsb#vyL%-S zh6QBK^#5|#^L}FC=gW)lqwXJld>?8Ik)2~>ijUf9a(g|p>hWsj!obtgaMp7h(O6)$78o&IIfT7_it^nFHfL*KN|V* zBDLsaNf*sdO9!P_9?MMUa#ODldFZ>$=bBTt*K{YJe>0BP<`lCxH4cx5oIOZ2j+L1D z&wsHo={OgEGsbzLtd$~s*Y)Zqaf&2F*S*E&{(>>1!WQ?F3}a<;ryd`(d%(A4_vWst_TDyR zgTsSG56k}Ut5IowkL}jg=(?hj);c#-7VPc$J-D}enMdwuvv6f1{$tygp1mhH%y$Y! zIldo9HI<*@1{{0h@o^`-Sn>w?T)k3|uxi`A?z3#1^Uvn&JfD#MvSB5E4{&cKzpU#Q zL-?)!Q)IgVDuCBFdLK(Uv5ZLn?U6}1eI#``q=%i=QojtFj;eb~RB*ZSrPb*NweKGV`KKfJZ`@w!geKK2R! zHq|=Xdg`(@&ZfbYuF?GCV!-`6Oyd- zZ_S22seJ=IPp5FU{0W{j@basBkQr%`=w^7eG zKk3e#=IsB?J&>q)bTe&W7l=ybw!#(srDc$`q|)PR{AHq_p8@eB+A;p_S{!*(Xw% z;Na(GxZ3snW7B4L{gzv+D&~~fEIS<2n7c1Kq8)Pxw*%L7bHUVtvkma>&g{!S!~(}Z zonMB>?elT@S1};^pU7()_cpK_x2>>y5OwriLE6G`G43+qgwE8=_uD3_g_o1}y&aKX zl#~b8rLgPMVCWa&@VAtd<-(#8a+%$`7xpfX8gz+1yna{sj#($>$BXx}?`I7g_ph_? z$J3aMf~$R^%MuyK_isM!{d-+xMZ$f9UK~Dc>8>TcqCef=$@>yB{ojyX*7eQ#rXx>E zj@;;1w)5iYg@R4qN9#V&#@!}(x|*1&Y3>v94zxWT`R%XipMp;Q3Zr*#$T!V4I!tUG zzv{vV#W3x4)%2>hZ{bb0A9gZcjxE3XC#^e{WB=N=yZfMyU*>7XUKf0>{eJ2}|3*G&E-2MVhz4PwAM*RKVo;Vi~gKeWxs87o>Rm9`K7n^m>RD6u5fs^Y7 z>)O4QL#BVP3VTjN^G4?J-?94q!}|~MOX`7}j$Rmr+%E)seLHw8{Ck+M*XWeOpp-*d zdnR75vejSzdzi<&;O0s#zmj#`t5JF96ZO8sf`yHf^i`}i6=D(&c$O0^N}6^{rd*p{ z5`0w6d{qehRR_#orJkUv>i;xWqfCzS*{fG8rH49Rot#?O`9iNzYj3_9KH0N& z+Q)>H#vy1DKl4p{4zBv9V&A{s>*(I~O?s8@ zyJw}O#{>Pn;g!|tz8Rt+@mFiTMR_hkcb~^>`IRc9W{tPm-!og?Yr|}@s@9qK^xiSp z>sDyldjXTzQgVM0^+kTS-Ep-;mw)s@a&t(LnZ0c=XFTa|Y{`~ETd%5FDSa8cM0Rhi zXWk`~&B*neJ@Y#KJ6O5W=u=s;>Dvy!tQs%wQDSA{^wYlm9V=kA&O4o<$ zN1eXb`@ml_pXjS1YU~3B;dJHMZI3F#>tU^C!`X=e?XTLFkL-EQf6TIbrCGjfG) zIh|Y0bK3i>MqI4eb7}b85Lveo;o*)6(!1LYgn^nBm*ooRPm zR?!Qn2<@3Q%DW#h&Jk%d#yzgFxk->IboM~K+R z?GslxSAP8RNBWVNm%{wfO!&B-^$x4<9Cq6C?M&(Jbvw5o(zGv@J>O%lGU)dks#z$v zd41>8`@6r*cIc^;PKr5B=M!CS4Y~VjuK4(&g6I1KYA?woz~wQS-s(K>e&<3QsW)S5 z28@}LQg&hB?Z(n=^Q{De-&Y?UlH$~NtZ2#Tjs5J=mkU#NZQ2vKbj+?N?c&bPr>66o zo_62N9h)Dw%xT&6#7Pb(|2%U9J$ck`;Wi%^^w-zHW8$xh?-FR^0B6_4tv7Dv;mAUd zw@W8-bI>Qx{c`ilKlVvN^bCK0%U|1N!egGfqE^2Hp1zZ<9Ciqv-C7hQUfX;4ompo^ zO${GClA%q*`7i4~*REd_z3$Lo?N{ggd^rPI7($U(3)yS)q$O`ZWYMnU^8}WEZuJm$ z?H01YS^U^l!sU2>d3xvA-QG|VTPK??u}^z}8XBahcyetER0{%-2UZN0*T7+@d4A#; z@_Ng!&pYO$qOR{En!e0v65Z^otCzq1*wy`32?0IWU^QzvHDjOO6z1q+wmaTdZ?RU@Bi zbRE&%XsUw_gjJMLzU0?`VjuL+NonB9f$%qOy3ZJ9g#={|fYxkQx1DdNP@fBGV8woy z#!FP33az=^%%ULfeKNyZ?OxT< zvY3Cngs!bgpblg+Rz{fT4ZFiGk7}yIzK!w7y7!7sB%svOaFqE{Z#OxmA{{#pTFTwhiKyGCT+`Q({$GA zxu^d)^|x&OZ+Si7^``n!(YIBHZ3i#(IGA&M9fH;QJ$$z2Nlpb3dY|&ZbndioC&PJ; zTtP)VnClZZF@N9XrQ(~PqU72%!Btn8Yup&+?AZfMdM9qfL18@QA~^o$uYJ4w7Q47p zyFS&PENv6aL|MC}p*8XQhagk)rxf5-=4KN&e{JR3+ab;=q(*uKlI z-T6ZbhSv3>jmQ2kq`2pwf(i9 zCy#kMrLT3wGQx_3))qe}tlE0dhfaU+awzBDabSQhbxEIBtk`&dNahr_LOpZb7n}0P ztfB$0=gt_@MWPLy_P(bdF|9JTVi~_%xqByab2&1La#}is`$CnoKKa4iyU#~N$He8| zeHQ$_=*5Y0E+9Ph+^6-{blRP4p?KGb;?5wMKS}$&LrPwt)X$v`A7F&*oeaMET_7U` zLC}u!6CQnfWAozx-+7B?EO*<&3gc$Kj^13$uC0%(X^Vb7D{f*6It~P5@%r84WT*6w zvQ5YC_zXrnj6wh7^We`@)*K z6@k*keiSSjQuIEeGyi^b#CLOPJrj5u|8YJ1=xZFk&2ZeAvqc|>-JIWWthi7i^2^-aY!3UraY#z^~V z{%|WLxp#ML+{*v)qIddWNuWpd-X-22dQML$X^|}y2A>{rd2CRr`RCa2J2%6-Qr3^W z_Nof{5g)i}{@HyzdZmik%UvIDd{sQDG4fg?#Cd9&M6+b_L!YDX*Pb}u(RNC-|D-W? z+wwvWAk9-(-qEzoO_;x1AUeqm%}5e>-Ur=`eSN``S=WD>E9yRHdR@Vfpy%r+2V8n{prnmycq7R;2i7rvk7yYDw<2QBx!LTCJNv%%IC3%@I0|kk`-M{f z4B(tHnEqU1DK(bh%1HpbhB96#SBZOYjrfGRnP+r^2J>9K2w{7+7|It}UnU1wHChPo zCRr{9Y7N?J4b6*iHmNFr?a%fzsoe4-sAw_MXjJ*)Mkqej#X^B2yj?`d-h>-D*u>Mh ze}^@eVQ#$@GGltT4@Ha#mNIH{^O75+MG|g4d6i=-v`zdm1YTikLihOCsk6FW?nQe2 z@(EYtRIs~pCRLnHjX5|`H+1kN_CyOX{M=ZSy&SCh*v<=SJeO zUw~ir8XQ4c-dRV+JHrbtO*-)zYKy^sjxi5$rM3q0j8<-PzCwnTQa`o=+vx*?!urNR z4M0!mZ6$_R!$`Khx93hwU^TvTn4_|eV$qhF%{=H^3d?3}R|cT$;VWxw!6DI>iv8JY zgGjZ~J)xHIfwdp8oFJNwL7Ad?S*BEI!aIY-JR`J=jJZXeX>5>v!`7sAs}9ygz(?m1 zxV&14@%DLnAw4&lWaDS(cBazAiX^+8+0L;?mp%Z0VHUv~bE3@wh(> z0q-OT+B+%WmZ6uw+iy=%|0TVyY&$Wh`wjAsrqg_fUy*yd$qf&RAiF?!hC8RWmKmLb zpPwUNvECL5(B}Snp6UL#ksi9Q#T!j3u4@sg6{QoIK}9XLz5UJdu2=rY)|rRJ^!{<5 zpCyD4Wgm$WYLJA~u_d&9Z6&F(RT2iNq?&^yRH7(K1|hTzEe0(|O8cG~l{)QHO*J)3 zvz>G9=k`4RK3!LJT`eX@_tP4&0h%biZ5nl`XixC@6(K^tI$-p}LQ`5mChr33>@VW%o=qpIO# zglPR9d{wcwkZ<~S$H!$i|HGz^Bb?wf@2CVRjQE30%p!=4f0%PR&+{=h-a`9zZ79b2 z$aqJ%OF0dFqc+xAZ)uyier3bNjwBQf?O40Jv(D;A<_`qZ^sW?6l%V=V?zj*X z4o|MB8Pi_>0ey5(u01=IrLP3f5tod{Z(^@nH6C0^B0)_}+GsWXl@44_zv!=az%5h7 zyiwi9hOi*;uklP2@6%ddsCZ%1kJ-Iz=X4>|HoYMRY%}-AZdNqXB*J}RV30SdoY2D_ z2@`JRf!UaXHfjcDTR<|&(o3(tktRRF-~y^f&IYb9kt@8&>uXtXImVw#`#p=$liO0S zbUIC<=6X^BV&Q*ppp&*e3~c9kr05|k2bJm6gopU*-eAIEz4nUBFT!;?LDBJ&a7xXX zPWak<0S^F~J(52q@RHK`d0k{^H42(U4Je^nR<5Becy`%o z`IO&U+b^ttZ#dZ!Jb3C)y#zz1I?F}X40S>|Y`Vi#DCgm@xiO)p$4q%P40~&euiR+; z+syTU|Jyz>+#W$~sJX95!~1w=2V`bO6_0C!?FKJVN<$g83V|({Tj3iFxhtOX5#DRG zPw2>rgm_7Y+7{uzfV2ffBK;VVMg0gvMB2yAm6{+JQMR*TgJ2dz0NXW(C4STd7CRB? zqNxsv7$a7sKNu0h@kEVa2&V!FA51ZfLrrS3j2Z=fyD- z77H!@G@)1Ttc>e??hq8m6Q6UbdeO~s+~RP@?qghIf3paxPfXefJ!H(XZDZ!C%bQfT zXII8L(9Y^e)Q;K(isOkQ+{yIDx*nf9_*jZ@dSq7o z>$y9VR`{Fx-k!*a{npPT6IkY#qgX=>4Wl~f71FyC25S&D zi%IE?A#gYA`_8-gLnvukiCOH>-iy}I#&$i=z%QPtD#C{Une>GiY{2lDv$GF2E_n^& zz8~&sJK4MWKi}QO3yq)tneagkrJ7B+e25ihhKvdF$NymdE{1-UoZQR7#~t3et8NH- z0EoYw|KSJTsXlFf`rr`c|4)Sc`^9X{dIc}^}ogfcwImEmrk;BZ(~#hlpI1LSHh@4-h^|- zgGQhVi+=hJK93U4NMt3PfUOv?_6T1~J!k4D3fnwmJSyvnZO*YnQyq@`ZxQlr`d5Bx zdO2kqbnX#q+;@KU-C_IuFYKe#NP~Z^F!A5H*#ESNs={q*X4#RhJ+YQ7X~UJ)ZsY8_ zKeyqu^_>gn9*cEa8u+MElo`@~rhH@4${x2}v?O)cVVjoKZ!OEN?kjocwcR@2>)2A%d7`=dGqir|vsA&TnRw+y4OTYQ{spU#9A(JkhJ?&fxhWw< zFDOFBU5cJ-v-%;*#rt@`hZQ{1lG@G7c)@}#^^=uD%u^OW(XoJhk24d3;reK;IbR&n z&r{CG1VPiszY3<>H8ieHnb>K%4ja*)GwHv@aIi)2!D~`%>G7|K+%!}$Vn*7n*oZYU zMT=moGR4u|dvq=k9!#e+E8!>HVagdd z%wIv`>f~v|-$)1KTK|kL-WeV0U)1y%yMn`j30_F|$bVOJiR*K^`ZV-<7u}ml3tsSI zXCl%3X3F6M50?^IklMtfmgH|axeZPU{OqY(wBnxn;vqhTVX5yQTFgdChS*dw!)CAL zi}n3q@j)(OVo(7is30X@n}|be*s2+e@^OJ>L)7@^$9gvIPj>T9&Tl{&kbI*$w7|dL_9zHHv>@}W0Xu2Z$v;~MjXJo2^kqIUEDKh?ZUp9uO z7LqezX4P%ih(*V3q~_#wNufYUc`p;#n!RLs7vuLUn2(`F%pzaBxwS0p;FdcDP_AW% zJ^EO6TG?qTm(DV*zh=3G+yQ3IcVsD~UkmWtyYC$C<5%7qRr<==QFZa~N*^8d zwn4!iXv|47on#nJXrUvHn1$L=bVP;*_3{z93YvaKmps>_>-RXW_o(2?#}3n5dMz=J zE15qZv=!jp+#^J`T`i>_DB`wsg$P4_nk4uiNki%i-5!)A7o_&lznODZC9zVt$ z9r0T+Z{$B`fz?N^joD&2`)!wUX8l;{Xj@xVexkA7dV}muNE*GdkC3!(WQ>1SwDoUL z?seIM8EGFm=GABS&$f(@u7ATx;vY${Gd`H(V{Gy71tqpb^`2MM|LkKt?6NXG9dzMT z(!s2`b6|;zBaXi$`e*((-w2Y&6Ly!9m;Q{T45uA6o952#OzY#+c5(3sonNep=7isd z(i_a%pZ@g_W9t{zoiGx|5mk%uYcx~2ja&YK;MbM7=eTcqo8P*0e=mT8R+lIKMjx$` zG76hj+T?d^@|=hXHo%MZ&*P|ZmrQID=Qz2wtzvbWw|$wJn>Qm3iibUn3)5~8g0z}( z6BNPJH~bV8@XwLv@_271|G#NgUN?dc9dR>ewKg`0UgxlOO?>u@&Q1xt5(7bd)HOBm zuXqRBpn39C^WUO4x&KWAxy!8cgToeE^HT0NIa<4qHkE(>x?&9Z;GQ{g;(gK%)6@^4 zx*6;X!!$xacnxRY&Hs!`E5ltAX8UF8^!O}Nx zTCgW?QeGN_9HsVbgM(ZZW_yCSDJG76APn;&OCj1kiuxW$l7?CvbFuZFLm~eof>FkS zo|UJ{4zg@R=a;P-aB&M}WLH-$xoFD#t5bUHOtNVM$ESYHKa3lc@Vi}p!L?*?^H>^A z{!bWlE7!4!$ytyQ;I(|NgHS`sWlfm>8R^4yHSAL6v)t6jnB-G3K1&1hUby+=<6EnY zV*Ku{_gxh->Tfss?Ne6%#{)qPu|7Ud6<0nz?>TJ)@lF4>tQbZH|2pA0+>hR)CxTDH z>K8PyU0(_uWG|Ve?R{_$&okI>TSjSNwam44mCO}rSdy5#z@E>H4!MQQ`|DIr~ ziXi-=3Ly@*7T1HHWAS%If0VZE*DjKJ_PR^Sr{>DmJS+RQtP$^! z81EfNZ1w0SLeG{G5&o1#kR)^YHrH<3WX*f~ysCaL&V6^s$+}A0U+13nRefIrK8&bK z+-kbHin}fsqRyuG?$v~%lubQ_FtHjpQI9FsSv+5KW+^ojqnO*Hl!q;dtW}u-Q=+TJ z3pm9Hj7tW1K>8`>6%FW#giJyJwzhc;{=DoukRX!5c%ERak3FsPBH{ly*OZ}}w zq%D3ayTAzEnb-G$@#w$%^QR8{i*eZKguZv+8I|-o9}W2`(NJ>E-rEke43zluxg>M7 zCA#Q$ZOr{T(0i{Aj2(Kjtj(~@&D5>=kao8Ci;Ma90PeFYv1MbpwlDRrp>w!wN^xs$ zLTf^{*WP~>`drjdfk*Cl`yBv7bfaO5X@p?k>>`*1f0uq_;BpWw709t8QCtISbHNKlMe=c zk?eD_#iM+7-U7Vs)ru>sWF9d-2r{>!jq=MPH89dl?!JEIZ094B4gOOdaXonI*_{m7 zL%YyfzhU6Jkx}mjWhBvHP+4|yVURcB^(h-OZCirl-!xjRV@6F+l*`p`G(%|%S8*{R z)pa}fgSP_qAvn&^n0Q*D0Xpa-nvIf3*dpu)$xCpd``!ML%(G_zQ!r=`W*2LK=h2v$ zr+SM8N`z_Dxg6sliRy(>3;$QQtmkB2sdh3hdvh%1{)Sk47CxmG#d%VREL9I7RRgn7 z+}W=2no0bBY_!%pc<5gSG(m2jg-))qlY53v~P;)^6~a+`eL zv4oVVc00TtZplAhr}X%RgNsDtB3Dp2aAqI!dD?v+FMsMC!%Az=wVp5K-1H&Cro2Hl zlKVHF6XOPi&xGX4+8=aKOX>{cnNFNK1o&UA@?O!Wf z#M!mh7LDKx-aij{qxH>#``X8n#y{4VI9alDdk$=a?e&YoitiU+w|)Gi!Fd});t+c1 zqRSz{>K{Vh%Ok^vx7^N-Jl4LJWD|d6d$vUd)aa&j>$Z*UF>c!)%LqOjca5Z0kk~t! z3mPDyj7VT{fU+Pbk~m~HUsn_Vz7mjfG`6h-b6O00AH!en!ZK|V`I50ovb%l`65mSZ z$+r~mZeR?x5Na$K4sCw@+?MKT3vMyGG&(=CK8#FTlKd*xDH${^5<_X~T_sxj(Bt>C znv0#EWj);!dT)M;G}14Wx39d7@d-qXo*nXQe*W`$pG<;*;q%_KTYhg zKGa{s7=0#8r9K-2X_P%H7rF(733#XmGd_iYutc)N0m8px3x%y8OU8&NZb;~gNob95 zcjrBjx8n2db2q-<`VJ#-Gb~vR{%0yx%*EQZAva+RjMB(*>{oZEANdSoljMgiR4GIl z^$=HLe-*n}2}mGcLy@Ho#U!LxZL?(*IoT0IbjgGS{7)xT=YGH4V4|z=LZt%Y`ak7G zgP;|^!Z$6Z!G!Etps82y+{N66D>Bm-h3!ZO2RKI^vT#0J-ZV`AqevLpCvq+_m$%Yz zh07?(f#Bkqlq_@kgO{-{-_h+K__6Ytszrw$6DMRHZEa*gwi#lH4i69iLHww8MB*`t zi(liL7Rs;=ra}-n+EecMPQfv+`FFi0h{zLq`S1UNrcf9q8dNGd&xm8_lr1jcFP#i# zjgA7Un7Y6qn*8i25_F;gQW{HG%2vp5)ey)5qfFpOy+!+Q6^G(OfrC5Qy& zlOQTL(45auV8lE70Zb%Rc!OVfkDp3|1=%45ap*83fhxnt*kDoEYE>t!y7VAEQZuq} zkgaq?6BuL8DX)lb8`Sv?>EZ6|rP2PRWLWsRqmNR0~5)CwIZP)Qhh{VSX&@~IiI@z8;89vMk} zHElsV+ZYNoNLBr3%dTLkK=n@-2MjMJEhE8eE41+D9dZ5l!8;{XdZlOc8XOt(}0u-?kTp+^%q8NfwA*F_j3kwsF6ef+$QEIRVnZ1y*00RuD zJw1uG3kfz{?UhU=4NA)(|C@x*;Q>V{W>h?* zjxk7mDwZ#d0eoDBvVnUkhseT!Gcd()wsaBs2NQXKdtI10smcJI>@;|eI$#PRAEO)= z%-2b53_$c$ILcICGy!-6x+0sEFa#+> zC={gp5z2TTsF?j#8QK;k?W)HH=tNK&6@|)#)DpC|Q7A#fK^KE>Pqcty5^Xm_$M~Rs zuz@L-qd)}`!2qI6WhLT+iI793p_ugMF16s`ZZzz`Zfp#bVd=}25#R6k4R~1oK^@)o zqlWRSAaE!BXA7t0{O1kl&hk&dF@t1lXm)_iaz-gTK<*8fsx#`aPVoL!q#v9?BGz7O zf4^ZHr#^{eUtiCoFCA(_ucZeC3Y&t5a#b3>zNjpL7CW1?tDT)&C9vMV?C<+8)GI(~ zP^nZWE*zjK+vpgP2uBw&fUy`KV5**=fJ6n{9O?r!A_{IfdvgNullGT%p;AFF%@yV& zLmZ_QxR3XA!l?k5r-VkV$A(aVLMSVRiap2yjKJlMmR~z7?pXDY6lT81y6p zMKu&0XXipw*dRdU+C)+)Hi}9$2pypofRw6g;DkC!g_H&#BkVyErBDG0V?@SME&{L6 zBKDX%C`0-YWwJ~INYOs}W+kLmR0BBzVM@EGbUc7xE4->;Q&Lo^z{mV3HZoRBd`EvU zm9f-2P|8+%5N$NlABEO!m?26cebG8LJaQwkHlZSEQI@nt(~{+7Z%M8JB$H5QLCi-! zgJix%$X`N&Lu>*{Xx!APmhCG^IR(a;*!3^_DHSeuWKaW`G#ZNSb0Hz(of&iY%An8U zfT8E4B^y{Kp@pSGN1_t;R4liDU2BJNlM-GC13maHFMO{Dst;|P_${KpA76I35Nku` z*1Mywq6S1-ZB81>&_vWrIodYC0B)p@xs1_Bx+6M@kf!!HHHK1fW_Sxq zp{im+f~nM=1DISSGvwtn!96zR2p&0t9}GBugo}{8990+9kN3tB`%ooAQcb3z0>%i; zRsn$!#cc|eKBfZl(>R1p-qnUyfqDt+-z37~;k`7KxoeJc2!!F?Oo~f&pxsLQIPwBL z9v_6_bI5b2QQ1(`*2@T#!hsGb#EvtFNaV6;5TjzLWMl|kLSDp1X>h2MVK!R9P+B8~ zkU}9-{Nez})EAPKln4vt`@IKm8FX`^mHI6t8^KrsB4u3of`+1lj5UxcK`bKtfM6Jx zj>+J~h2knRf~}Lk{^n=CtdUl;A=h-;FYD)@hP7#UbhrB9OHzLI50-F@`CBLDL|!0!ru<30oM^2~cGs_=fkeb7k4&qkl`QoX$$B z1*2i092xMVm{hqo+Rq>~fLws~MgrU({GzF1Sr|6TP{zN22Ro%4<(e`?+KK;F%3kDB z@zh10YB0hg=jAh z5d*msax(_qmAsII)-mKmj4m@a8`?R13rMCaz#xN!Kwu%U5*yG^twF`rXfjQ;i~5NS zVql;Zz&LpeCN9U@HDDf*k>CMHTtOq`8JLXL!V+s!5m`0NN&@O_xYTa_lYNFn8BH0?(GWlyBR!K9@%){ zaP1Fwq6#yZ2&?D1zN`#}uy`X2;xcRlMP7qMJ{oiOBOvCpoRE_E5hJzp!~%FFunua#e6fm zrR9sEz&vlIb^>8pj1~$n2h8)t(mq)AZE}cYZj;J~5vgg)uV(Nh(ik*GFhIALH$AdF*68c z4F%maxn?v&##X}6kWJWgPyq_y!`myWsd9u$0#c-pM$xHE(8J4Cg@R@vWfQ6RP+|jz zVt`06*vdAiBG4WVV5d-d`0y__(9f|QKuDo7j7Iruw*a|4gq~EwsYd3kctj9si$;QO z9#}HQYCyQEg!0yEiw|f4I)FI^jiI2Ul&PRmy8FiTp+o7#r7aYfPW?efXc#CJ%3`Tt zFoesjSq1u-oDtvx(m+8KB9`Tqqxe5A?FErDsRzn1u`}s}b&ldeQ~*eA@dM=yX(*Tt z{@N4WsFcs4GDVO(M=(?j4uD!*t}4H~3dm!LZ+>HFZZdvSWRH%iYhmRy5klSp-F-q* z+n#C!gd^#Pbu)oINXI_r0>4~&FD>-@c;@?kvJfP$E_DpI3p1KO1OZ0M5dt#MOb1#q7osSXrwm79c>ZODMN4{ zg=j=LD#Y+35Jxtx0Wm;;5cg1ciKD2J5CSpEM?~DG zF_kv4w2Q-v=K={+5lgYpOruU*xu|}68cTq;cYQsr$}sdgKh2_5$Ly0IGm=tM8@mZX zf+%(Tj@)!%FhU_j0gbo}iF~qXK08m&ivnZyG!TtK6+Vv|#bhWMNrr(DhJ2Nx6{cx} zG!+TMj1Df0=|&-OpgK=B#-$H1C}V6`2-u(rQ`MtliV2E|eW0z8J)#d$UtJib?}n1- zh>-M69zrDSG^z**lwhO^mEpN!lzQ!l)zg$HbqJN>Wax3C2$5$~9W<2{+#J2t#ISJG zjC2C$Mw!FVsn@Y3#X`aeG|~wkJo+Q7$QA%8WHPk3sUKAda+JY5OfFQmAj<3_L?NT% zK_`RkyetZ(R-z4wD8T_{tV+B)3H*wrzR-Y68A^5mk&t)`M({C?kd*Q;l~B?h31I{< zVu*#8s91usvs%o-KSLI;6s7*H`(Gz<94C{)Ox zqFIS(2V@sv(rV%W+Dah`jVEX$Z7cy*_Dcid+UnCFBS0GBE*Tm`6d23fWHQzmDTD>a zM&X=Ve$~R=x+kj_5}HAWM7pO(@{8K%TziMvWo7*F7wGYatAt#!YM~rfMY6;q?VLYf zuYVSM1u9v|+N0a{7fu->g3v?CSX=5fCPD+{>KWBkE;h`TXMndzCv6e9k6fh#(qgO9 z8$=+TC`|qzU?XhBX%JB$Wy-ZdsZ})~om9mMBpv-tleM@!20UgEH7L9;8HB|Hd$Lr6 z%EE`36kP786x#xqLrpR&Wm6&^NrF0jpaGG45N>{vEKvZ~q-0!!iKjX?9N)<-2mSaE z9qySf9Gbf&)G)k*41tiPP|qWrK?>gIN7bXLpd%6Ib3h-P^l8CIcw5MSFjLrQ>Wo3m z6K(-;>IMpE{xWT%9Ia-^#~i72&=G4vR-)Btj}Qb}*B5Asb+gJ1UPw`%#N#Oibb4b#FQdU!ZFp3@^YXM}cGhh-BAm-$$?12iC@B;r*d<@4ODGnx}1&s7EGz_G|czBWpDkg=dN43YT}Rq?@WYE%vUum=e^MWf>NvC$^sm_C?_@;SzoaWWXh zwvhp#kWN)2?GT88ve9l_8B9eWCxA9cKu6he6ayW>A+w|h6GoD}e~5F9^FgE5@PZ+x zLn!tGB4`f$*dQBpL<5m2!DprZb9@>=DB-EB?Zwy-vsKkqjEYdvFMP}q)I(8>Y>cO{ zrDCuVOrZ{fu|c*S70#fFK^Y21rzKPWCL$ElkLHccCihLoW*Q5D8l2(G*N5)fLd63Q5k(~VkJ|y@`=_CF z1cjx-Nc!`uoTYl7Lq7AoDENEK|Uyo7E}+2 z(IJ{jxD=RXi@^y2_LTY%2@N^X3Js~!hYkjl!GMs|z=$zK77wjuFQ-{mibI505t9^9 za<;sQEz?M2L4UlBEJl0$Vlk1u60*sD4rl{2(9a=NgcqW~soCYYl&-4s03+C_A61N9 zCQG4TB=XsVIYc(vfj|mh9w3-fb|6(vxx)Zfl?=q_XmyKX4ah>f=+?In&_YtH?m4bg~EJqe^Y?&nVltSHur9m@t6IngeGtogO0!(5h2)%ZB8FHQtmZ zBy9}^RuMB=7gllhnKv_8t*!WD<6APnvC??u+?hvW*P{hYSef|gSd5Md6L2uIa8yXPHPz!PSifdfLIge5Mpw#MEimtrPeP?MA0gsQ zMxbzVvkG{EKgee(hb%xFn2HuyPif);0wOl;QHg+ZMO)btCZUG40FjE)LS=GHl|gkd zy#7+JK#P<{3SvOB5U$Jif6KwN$d9sOm1_erN67(Skx}7wSu}v$CR-{Bkr#tMD5R(c zEhTJ$hz^i+1eOKOQ6)|-0k2?1mY5VPEJEY7>W6bvRRVTXfq0n zww0I^P67m)~)QK7O!p41WEe@sV-kY!Cf!oXNPw zHa4N#dY-<*^k%wWHTv($$=9l7Xv)!%3r^P;<_htHLhS3Q{*jjmldzwGt= zajRa=9ryqH7|c~Wv3Ot1NZ>U?PH3+9^KkpD!Th_Gy-|ZpJgsyM zl2_j>b8~QWao5^jF_e%aYYPzO{=YBZ%@XYN|5Z(oyPp|KjYaRFho>m{c^;$!po9H`jH+Dk6CXd+p6O97&c{IWIW>R9!B(qojT@d z>(lmt(b$w}_|D&$I_H$h>xw?-?|M8%kh1c9r0|MYh%a}-@aQe-^>9$1=)irRg{rSI z(Rs|+!YC|di=o&u?>r)EUti&#d-O~eGG$wF|8KQNy&~V{%p)#q>2;_4T^rODM)8LQ zn=0$>HGQmQ=g-lZ=8IV{yd(l@3#JJqn6du64UKj zbk>&-y(XnxSBB|@y!oIlYz{!5cx2?{d0T(C;G{b>SA`X&|M7P*?2F!(yUIwsGB;MU zLqIIfnI-5?%(mh#TY%=34V-_q;$u&b?n0ONdF6MqiCpa3i!bvo`_-2HnIAvel}+@5 zZ1?u8SID02w5#trvVCgXSPQ?JM4wn)v#_)AlIvX~Zrr?nxw-q>s{VRzW$hx#izh2< zYb3cPE&e9fe5YLtCmH)DxX!+|^WkOB=9G&|ZZ%nME#0?O{At3E+f|}v59;16|CStP z9hiSAq5f`ckI(lC@q(i3ZU(2?*SPKJPd`_%bg|K!g`%G6?>82jxSv_{XJr3-pB0C9 z70(!VV|Esz9Q24CA0%E!jT(5$oj1(5>DheUJVeCkbxgdPdo{{f-M?F~%-d|K(&_E( z*&lg^6>WRL^<8?yU!odx>P&aeJM}d@#k$Mjqf@Bvn)Uf*=YJ>62}ayzEw3uf()Mrh z(xaVz&W)c){pEZ0^Y6~KVhHpiFI^UzaByA1%c^Wd)TD7>4(kmAeZw%l)KJbTK2p3~ zn|o@Z&C|W>_f?0JcJJ128+5jzsvBo5i=|Kb5fI)P=u-C^yf%sG&3XCiCAuIiJaT?Q z&eDoP({(AFBnSJ|QQ-y_c|BieEq~^?>_7bWDFF7Abnlg_4YoxcHZJ5ir6(8e?rv%9}p`253=banj-!|Y_q`%eq3zYo{)N|MJwEI7v8rM;b9N4hv~P~Q!UW9t*>`KNyyXHUk8|Jf9KT(lW9o_gib&TCQDdv7V`9A}1| zTbxwPx7>Hh!DmOg`jE7CxGOuso?@7j#TiYFv`^m7pA#G7)CX=;LZl$?KZ8$^59V4| zjjv?I80+D4Coy{dVT-8iGedGJZvAdJ{i4<*#RL%R* z0~YN@48((D&HK;V?5Us5y?0y7^pFIET>bRSqGkKRtF__m((%@NaE^F-PX21G{shixxbZ zT^JlxR5Ow&h&*#E9$MvIT@}^@Bw|%2h zKVN#iso+)2rs;)BUmbLgS&= zCknPu1(~n41<9{Vt@`~P>ORuw<0?er^Dd(OF9NTNcZ>M5)f}&`zhM+%v2?r7-%_p* zEph+r&;9G)OewnMz!Xn!Tj4o3u<4UxWSb4@y6Rjhvo$s0v+PmG_q2iD-#G@i*Bz=~ zR$isP_RY9W&dwDRYe0xwz~&HmCP8oBW&JgN@`?5My1QMS zwu*~=oZUv24*Cb+mv5K{IgXG&=L^(DYh&De8s6|4wqC705q`!g_V12|JE?IZuA33+ zE5A@zJpFcN?#UjRulncj%QqFA8Cf9Vd8;$A`M$?_O;Xi2@8St{URN&mI(IK)9di*5 zY`cBZC;u`3_7uNoPXvoy&F1XdX!%2+r74;b)w%NBs-#PU`Zvo|wG&T1_C{uLsF|253&F07%mgEX&x&273{carF;Z_$seJ|1(N@GpDKZMsrM)$ooT zi>$6pB}leU*~5G@?x3U98Jv)`QCLPFm1L)VNcBNB|kLBc4(#S zymG8ca%jLV$2NWMl?|slogx|(mOCDNm^IY9ptCyY?YW!Hmh%%EO6kwLsry@|S}CvR z9(yw2=wPByPdHFhwz&Uk|98*QHD3h7;Vxb2lSg{De=NA_F#5ga$M#+AoA&+cpS&~j z{Z`H?|Dm>3j_xzp^7Pu#&>>|*>HRq`OXKoh@2g#TI9l`m8@h*<^{owu z+`SBZN(}Cu`<6g=7|J?3$SJ5>!@ktLZu7?zRkgioM}vAspdZuJ zZvLj|D~U*0a(~8;i`{W8+1{7a6uF-)SjitA&$D_xcHN0szI=B<_%h>Kmxjdlmxfgw z%g){25%rwDmIqUFH@y}(ou=#jdD!`W;No^g#`)cWk>x98_AC0A+793j^H)UBY&!xj zekeC<)1wEeH;?c$(;qi5e?3Wv658Hg9~8D{?t#^h62IC#TA)91Wy;RuL$lrtN>}JR zM};mK_wG}0$mad=`(N+cH04rW$<36QH{r40)|EYZd-o>i@q!%%eh~@zA=8~^E_vv3 zS7oT%vh1c_E&cyG|7Dtqy*4o|zlb>E)5^K9&x1K2m=Qdt4NL=&3gxpFO z+TPkbvyy!-^!|3%$(_Wd&d+X^ujVe#*yy|A*^_#oXO=^c<_yKpZyM4qIh{T;Y@cFA z&(?wCF8e?4>pW|ce7Uumz9c7^M{OKD=&@nEB`bc#a6}@O>n5=RKpPcUQH|9PFrNU+1(zBEj_Pid zo;u{@d}*fARA(XAar%;kzMnGZnUkAqCm&*%X7P?x_(dK)J^8vUep&gDNzpPVR_4{Q z#J3sjUvD#7%56q?TyfO-%bJ!zvc$7s^2uL@PP2Yg@mBWKN-U315tp7u93k#nZT?(a z!Eh`uj|wgIenU%*b@cgitS2M#@6QrnkBB$V90gbQ+%cHgo4@01$dl#tzq%pk=2+_C zj;SqoqAX`W{_8c6uy5{&t(hm+aVz8W{$ftaSJbWK0|Sgle+&=Ji=HYn5lpx?SAotd zvmaXQ7QG?TXFy`$P{|slji?P0Q7xlFH0b$Tl|=`45RC#0_!HxS@> z^6Opdr`^TDm%UD)@9z9%Pw=3x-LLcCs=vH4a(z+F{l~(iU-2epmuKgelgldyH!o}B zI++S{WYWfRbnMq*Bil}011|zM62 zA=!VuR8o71$Z!&za6dm>c4(4K9Otd4B=*O#O)f(Q&+LcKd^vC`R8pDDo)@IM(SK$5 z9Nn;05waU{uwh2gSypsjSJRcOi=O=^)mq%SLz;zie=d3K$j&>`c9eJi<+LC5-wq3G z4!@n68*--geJXM(g?_Un+ULLq?Y48DiXT(A_=}X-)=$@64ldpObK{R9$0T9`uMa=7YEnFj|-pDH!exNpLTM_maII}!W|C74nCh(9Xoht3F3U&-(UG{Rgq`b z)4Ap0D>6opKirT^zZ)JtYPw#NcGi@9HlIf4n5NjZ{x7b$fSYB{ynUwMD&r%$%5uNv zT+KAsGlr>gru!>bj&DD&Ju2Te;R?6Yjrz;eUpt?+WPO^uiNne+t*V*a714DmW*xa`?RzKc1t<2DrO}zDnpv(^mUVBmo|F_upUkL9cssw+$Obv@J|c?0 zU%cD(Sf!+Idx_RU#ir8)+H}TTH^vO3 zeui&U`0bEomZd!zr>2FtEyg&;ue7Fx*lN9WV#l3)=DlO;xUd(N>dCjtEe>{?H#Uh* z)m)Z?X>{VSt0SY4@sOvru29XV-4oYP-#fqFF{SfjW#}@w6)xH+|8g#zR5N5wP(&to!MJ-tEK{=2`;XD>}&!(2{1ikghAlT zpy=Sf!RK!tl+w%BC3Sz^XK#Agr1P@-hM=IS^c`)Cz$Iy->xr8y1aXg6Sb68aH`!_^ zbbEcKq|m*0h#fF?-Ql;bsz(8Y-^z<-&RLx=T)|vAjPNs(#P>gCtUmwTV#k#2Dc4#r z`!y@KRvI6?SoT`Sdm-y~%j&HUryu{4vuU~k?aHmIS)HrycpIJ6=0Ba|_K|Hnx%c-4 zhp2{?TXo+1)3r9m9h@tyHrK`8H`C^5Vy5?np7y$H7w^t{nj0B&_gPBx+wp6)beAt} z-9Av6J~^i8XTJ?+)!HKE%;zODx2MQ5x*X;wm@i85pxC;S)up@Ro=CQ>Dcf_VGfHps zM8AE9%Zdhf?LE`;GuLh9vv3W~Tah_`Dz{91`TN2j*d_HMzdyE`)we#o!`2F~xyG(r z5$&L87QdUlH8R6tovBT<9R0Zs;d_f*qT)}(WAfNFx|&y~rPJ=T^A23mU!r=Bl_v>e zj4h7Nn0(sv{2!nHrPe7H4)!F6%wL1Imn&X=?9skeY-P1`S59i;xPe6t7pCw$57^nv z>wMjp?^1hL-|V|iCQg;@Fy>M5vWetZ4IlzOudx+3vPIByl9 zp~}EJs zvVYr!Sk;~%cb~-1WE(F!^1lPpFE!h>Ec{*WyEk3p8X2_iJbLj>OF1+A;^{S8xv%m1 zQ+i!1&Q0-WMFPi}p@+>M5i!BHF9y{eYIKk`F8#=&pJb6xNBG_!@4(R#)^ zH|JKIOUbHQ<&ypU+wr|`#LS(?E&i)~x_0dpmY1zAT_q?98@%vf`#-K2CvxXUBSdYV805yc1vlTk+ZmA_GO zoQkp)-)Lhlw!>NSHKBhS8$!Mg+hz`1S9ZvT zRFD&VQ)OcXPn%nT%w}lx{MgA-z3TI=n^wQFct*ebMZM-LKZ+T*QKn%tS28ZH^zD))UbT2=VY zBzns?kC9&%w?zwWHeITAP-JeVzw5?h1Q)-`Uu^oA%BwxTe2w0-5%D=&1KG~wd`=iR zdFP-uF&B}A?ZOOQ`&g#GDC-G);wGR}TmB(u-tXCb&SjXJEZj#gaD-o{i3LmcX zIZX>QNiD3-fKk&9SI3s<>1|6RANP4%rwwY1O&@or(B;#^$7z`!lNWWb=$-U7@$6pS z)0g{LJNEOxT$|qf`d_AXEcfNn-x-#{*JjO#{VgeCC4_wYCZzL*V)>l(9!r+y)__wOpW5f4Quvyk1sju{#)<+ z*LgFYU51ax#AYuCCZS3&jkfoBJ+s31Z{yMV?D=oD(a#<9Zn*kA&FjmYD31*f!jFk* zan*!0@Ktj7M%DHGSG}tCZE=ZS6F&QT@@j^*@UGw7wX|COCr-Pfgv^nqm?Mjn7v{D^ zFQ=`$#@#U*e}#A3oo1K5Xp+!MXSg!%<`X=Yk6dkNpJdfOe$;yBlOGG7$$SRb+P110 zt8STE*aaW-UAq71z96+LIk_s^(hA=6%Xi+_2C=Gw<1^f%c|$R@N8uJzDBg*E`5glN z35K6Lc4hc2e}4Y&aLbi5KhziHToZiI81*pbH1Mj0KOnYye8 zS?tts?PuS-%Qr7RXVXf5@bddYmrbB!2NrDB(SM!&7bz5FDh-IGQ}3JXcqnX zV-w^j?e!uCy_|Gk9Nr&mvS;@bDN<87UA-ybCuZAsIb*7ELe#wM66Ynth+|_`F>CD| zeJqJa*9jM1FZi_}gLAK6BmZZvV%@Xr-nnIrSuZns{C%uPw-{s;9h)7y=5rT6y`T~Q$PkL& zH$Crqr&H4-4X}CQAM$xYkavM{d%rSQyT{M#{>p)RztpwrCfvmjx7WPc;FK)iV3_Y0 z^tXzZbGd{zf76~j+j=$Zel1-Pw&dkShp!B-iNRbkZ@r*_u{fY3_HSb&Eylc%Z&pGp-VcAL5@EUq8|y&06iYF}~+bX8B}YounV(yB}&~uh-3=HAVZFdYo@= z=!_S$f|OqbKLTUFb8Z~h^))47O?vq7fnA!G6Q6b0pSNA@M|4VN>}{W4@n8l+vrhfk z;pt{yH!KV^`9a$60I3f(;!ueEa#MwWDx!=3>s8*;%^f_uAeZ>0({~qPG2; z_0>g`^c1Hhr#dKM3Uk)DlSvz#ZQP%oSztBAF2<8GVyE?+DKl1CuX>PDaCB$F%tiQ( zdzWpqU%ZG4+4jQl#*vfpRS}_=9?WZgUFG3d#8`7h-gIz(v7zVlskQxs&lmr!|MfAK zr7H4b`Ch=dalzaIr;r1=ayNd-pDnjEe` z+ZhT?Op=$SKYb%lONo@Rr4=w)BJ=IAkwKm)v6`xyoE7A@a|N$Tv_laxA+GAhij^{)B0}|5_{ct}hD;u31n@T@*bO_}G4(JOPGO<=1*|!_6?MQakxh$G->?{=U z&laYW;0)e0oQmG)-c;4UDMglKK-I%-k2* zb>l3+$d2+Q;jfePI~6q!nwG40K~aC~SxH*y3K@4zEHYd0h{Fb~<$Y&cy9X<$&u^M{ zUs9kY396w>oqyQPUJJFZ%1FvIeEj-s`=>lDIMWNyskow?k;9;n6kT=X&swH3XZbu! zI#U6aW-oJAc`%^N1!RTIfPK52EqQ^c(i(ko7GoDF7z(OEYoh&l6!DKNE$5?!H1$On zXnsZpRqT7`#~fGtmqFv(9&9W3F5`bV2rz3ZMpWnc)$X+rg_(lC?YkMjqQBSqW)hXZogo|Uhnob9@F`RR4JU-Fc%&q9>0r{djR$E;sKX#iK6CSY>l zmaM{M2*LmX_#Q5%9tOFfh5sm*iawYixVCJ`oQ~!)GnrwRmh`j@FJi<{{VolC-I8X| ziwGWO&fIyPiLhs&F{@wKF`al}c?i@}l1nh8W{n&U+$xL_NQZ~c!lVVcSxH0QSu~86 z479N5qfScko@Fguy=_z>rf;BgrQzzV&Eg~%f3?QdL zIee_ihzC!6tAZN*T`rf$3wqZ~#U+x5p~f%=1Wx; zHE1e0wj>7qCe$lg*!ei8-!P*{^Io)eg$w&uhWqALhwdMzGHHo|;Ex|p@rgbq!QG@m zUn-8I<9WrV7R;Y-V?EMqu69|BRBFT`EsKxIlnOk*)6#;8gd};|lu=!N8Vt!|_ZzS) zVvd_ilKO;c{7qE+D1KMHH{hb;mhipx?o;nm`s&4e4m$r)O*nI(-&eMt@^yEpaP6qUL>_xBj(Hm4nH;R2@i8g zfJuJ0WO-!hLAN}G#{OZKZa0v-rWL>IpaCq*S!YlACsLcMO*Q0?TfzZqgbaWEla*Ii z;iDHLi(8Qikqfl~8kOUDia%(VI%O8A@O@njs%-h6HPNf{M3DK>Q+J4@a9gr*zd+~-Lif>kSj(j$nB}L5}C%d zcP0OlzXoUV(5&aEO1S@2%45W)s8=Xjph-NdS-`_wQ-3@d$>NN~!N_ZDz}x$QMRK@7 zxlyGCGv0etNe61RMFttRC86!XY=ka`i8-iBK2_w+P)jt$%~TcAAer8(XI1Fql7~d* z1Vux-fPlR=z^_=#Orcyz_r^U0kgK|Zuh_iPDU8iu^Fi8>k|9X$Ir(I@Cqjq+X|Yvl$inJ?QE3>L^T+~79D-8u+lYBAZYsB|Dxn;(29k~&U; z=QA=XzofxI6R$Ln=SrLR}*}u~ue&mof!@`5$M(Ud&(xZ9``Uv=e&% z8^ux4SQ7T~r#JoI=``8`?Jm-<(h?kYn)Q-`c5)<%E-zurZofi`_#Tj?x?F7--(C}` zkJ3D5ri{x;>2t;CerbpRR2nu+{+kThoS!STzaz4fjc_MaJW97qwvZk@Zmb**DrqeI zs&MUY-))Ck$>)P(ZGas5;gEeJ7^~PuhPxd zVUIA9Qu((6^(yq_pbp^Nqg|@UpQ&UxLEULF4#|0O^p5vlx%3u67A^FV+F**%GG9Iz zqBXLOZCTXt6`LOj<8XWYYUZI|)mK&Z$s(o7A8GnGj%;c6f{(4)Bj>@x7yMCIm7H!u z!EE(a)g4Y>+gN^C>~GW&PFd8A)W}iMmHJ}4k}|;rGDFiy#ViFnp#_a)pYh8g6z?zt z?dQU`$nPvU7MKrCG^EeU3AEgB1F{3EX-MU*4^v z@T?NM(gW=@!D71>Rx&z6`@4BYviFjmQ0zPE*~12RFP9>bcl^HZv!*^-x?91)_dlsk zVQ~L@r{{w{CcbM`QE-|I5SSH|HsuJPxTdb2C~ za(^6R*!kS_7y%tc)o!6aac9)b&`R+%Am$#OqMl0+i;<$SY$NfTB(1L{C7rG)eZM5R z^sYsr4mi@%;eTnE)%nI>u_xN9Eap|7dCniM#gw4=UZp%cz(I6FKN*ePnx>!ueIF{z%G-}0Ld3eeTl`=Dq zJw?^|SP=MsAUgdvm3$oZ3J8G3lI`mQ!d+_zF;2S-E(0{S(q39DAC+3~{TT6viOu(l|?Ssi?QJKj1-uGQlj}(-? zPj^vs&4biS?A$08FdNSBwdaSnh_8e~etu;!fDx^p)IelqnAr}pIyv?A0Nc8T;=OkZ zEkgpY$UdO`JR_w2uHQYeeB10`Fzv7T^q}!GPG0Cx4)YneFG34eF<4nQ8=(y#qc{IH zE=A`PAn?K2^3ng~kT9>7GC4Tfl_gTCr@UIrbIou}DgIi1{oLuvIV4yfV*EF(i55?$ z$!FLCLKzG*Q*NMR_XrE3Bv8rz1QxX5%fAKdyTN!DyG8%}ez9`gk&U2%e0N~msl1mP zaa7lr(A4GpHpF)G)%q#W9y5*qk?#vb$rh2)RfFKXHZaz0j59!0pM^LOFWa$-6%QC4 z;wD477R{T2)`NEsL(NbPC2{5bsIJ4Qy(!q7Zw$7x^r`XJBsqdb!)zN-=PQR$-}2; zZJOn`xMIg>N>|pwi7-NGvcFfR4{ygp^XbZ~8KX8iQLI|y-!lgnS98VXMr_!bCAmSjo#zFhhMWL zt(E6pM(#L&t}3t*nBv5@Eqm+^YXzz-o@ehd&juxCb_2z7jvkKX4;3S68CanSa(_J& zF-VkjeqZTpDBSESFL4*OW52VOJv(Zrg_Gl%X(augojkVj+m&=HQT&hf~=hI#XT`y{tld>V0GxMM`mtE+9E`&yD*43FoVzlN2hZ zm5Vmff|jltO)IWnn|Nr2cHP3BALt|6ktE4*_v7~61jRl-NW|lMXexRl6-*1!fWR&( zJnzJ=PC&^d*W~6^IUm=zeyEqw>?T)sj#ih&xOV8Zbk3)M^^*n~t>%n$nnSpSSB*So zKADuuR4Rpa{3br^7&DQvn|XCsWy#dcL-)tPtBbV(4hEi$oQvwi8dK}17u$T32bcH* zy;{uQ^QGIZ3w@}~TNKEyHO>Fqp&ssHsh0e!(SsMFIvtpuEJM~+30q9Fz~ULkIV9Vs zwZt*2O^upcJSKFk*eNSdPyB94psA-0bZ>XitN$}#LU%p5#CtJuObw=WOwtADexY!ea%QweDh9h6wDtwPhVM0HM+C z8Pk<=D$Fw`c&8g4qcX>*GBv5eVq+8&xy`nTkQ)#Mu6xjftzany*W|s@_=OIqd8$zM zOB#x`1i?r8oA`-6?atw>q!20rkMD&68tNT+R(0rlU!4tv3!-b}=tJFwMXax%XybsZ zJ88IpI2@B}<>{9@V54#zG6mR(<%yOC7XN4FGd%{w^4~>cn{R@2D7wle$5b;YYl7RG zpR19&G1^zx8|@0myo2H`C(Yr(COH$%Zp@3fAu^2Dn^SvEBkq9l)Tq}XnbIC{U8gJs zL0>oBX{@lbI#j+LMAGP<+6mD`40U@+dr20OWr89eH>S|W&oaKkeGcl!Pc^Uh!ipLX zSxZ8G!tDXM~?U}M(8jvx2Z&Fyp% zb=>Tq4yg4lh{;BH2yEhCyB#+U65~LMi}cg`FoH138w5)ZLt zVBbQS#5cJ1@HiIiC905~bRoSVsUxx;a_a#2ussU3Ei~5F^z14<`rDZbe9yQn4uOY! zP=QG0T&9ebw3!dqB-0B29l-Z#o6&}K5z`?Uob-=(itG%e@}>pqN0t|4sF)*G`>w7C z%#zLW9?{O$)V9g=LSt&~YS$g=etac@6`~vUYh+&+mq?d`@Z{2rWKq3P>Yfyw z8$B;W?TF#dOk#83u>%_6B)zoJeKkQ%~dQ7;+$ZhINX<5IwDR!-6Tk>`tKR{ zwi4wYZR7jAxAg@1w|v)?boCxB-h~aW!hGJ*CpoJZyzx6(b6(%)8E?ub=K^M6a6K4-v{z zC2gmeVpmQ-r{GddpK1T(-hN9{u(-s5{`CFeOn1y%Y#CvoJyam@Ci}Yl?8yB%zpJZb zwCeOAHDT!sGmCB7j57;q(sJ(heZA_&i3^=j>nQWwbiMG(&%(QwR{F^wGJ)2l+Mws?Q=CqTkQM=VG0)KOy^lVDd zQyESER_I%0N0@8?+7eYXd1OKkNJ!D;cd|JzCl;X{k>=gzgC;T%GE~<=F}tyqs};`v zuu==@$X;wO5dD*F=<&Mj)q``+?A>lmG)p@Ypi!Kq1Vobr8R823p8WGbt6xF`)bmHp zUYReiJB>&zqHlv>mvyMep0`C(!%pVXIa~}s;+&I^9{2G2OyElbEiL!qu+%sX7I(%& z&NZGo*45WA*Y3$*f;#-VKUETxaRd@v14$gey{A(`=a!)BG`qsidh4}HUG^tOBOGRU z5$7N+CZH}w!S@+(?GqHo7yT6n{)P_ z`t7$(S@FFX|M8pw%IiC7eCX|I=Z{@PJf7+CQ++i;s%fzT3NHws1&W{iDw#vLDCccz zj>6lm0q-?T3L&w3zAj$O^z+bl!G|dX>8(BT)^+PEj(5kuBO;cI27%c7x+es|RftBH zO^=94ZFC^M)tUn?iKl_$^l5&vaj?{k=EJR5kSy2-&2 zT3i1K>S5Z*;9Oi#k0392!jxnvx>m+MzPqC$S$G&Kv3IrY`w@pxu{futon);?GD^$2PB= zH15zW*pSVM)E&_N(;s$h^L<;m12Kyeq?`5XpsU5W(B~Pv$d-3n9N*iChTkWIt~cJm zcDX|4S>;Z^qTYps47Z7jJk&WZH|RK3EK-7jEL+&%$PUkDLaGpW3a{3~KU7&03@M_OZ zvOVcKQc$1l;bViOgM=mNN#|#9T;}m2#q-nzrVar0XG0jzD?czs@9H``8U1(+(EzaV z^Bp`~x{h7@Aub6L`44|zwq)32yq+HaHRTrr>#3HFV)7wx@3@o5ds)tl7?X{hkAqhQ zKaZW9{@os<^tJ5vO#NL^Y;`S`l3la`Da=?TE%dz07-2b&{0wp21Lj>wqWxLLntfLLE1&T&fFQ zwfD<%ZS2FeuOD>(hIvp1xtJmTK@(`!n}F%$<6=2XJHOziCx7oWd)0t;MBW)LJC zhnl+%o`*IAgM*3TDriWKvQsQ6)L2hU{y|~s8^YV8?A7|7(TA1$A)6F}s$z)hPLi`w zi?W5>r%t%43?vubodWRq88J+C^o%amIE-fW&LygOj-@+>`*daQq1CPt>k4P>M_uk2 z?e5cGG%HV8p*%O+-8PN}l|an_rYnFELw*IOqHc`C+U?tLkt(;dA#4!_wlIehtZk~# z;GxBz74HUT()fq%UPnNIK579oymz^9bFNx7uk0iokR)&(H;X2Fk59Ff!d0S6n}9^H z=(@0cm`Zm&S^UDO?-G@W7yH`V;w)KL5Vo3=o?b^bDU3Y4aw0!*u=*+K%+x~Q>%i<( zQJsMKnn`zn2usNC**fK8s^vTfg;(zF`RD)nuanpvBGh0G=?(gKqNJ(+>z|&#p>~SJ z%GA@EYxy$p!Ml0$7oweyb~4aajO#aB(|ZvzND%)@)RA8I4#D#I9Du0r??0rm&OL^jP6H zYZFRjksASN^H!}n%tRj#;FeM1O=4lw&pu3YGg~Fi9du~Ese(lNna&h)LH6`dl$em# z8D@*nM$eByL_r;*MXGXSeN(~aP^YwlUH_|bi{Qq^7;=W43I6r_3CY{P6X@^0tkQ;b zL%ot=T+yn7l!qWxe_n+Q?&RVtA8Ir>~%~`a7 z(h02efxJXdi8U2toovkE&qIe;g@Dnk_9-1An#-ut2n%1Jp%NB0@1UtzMq$#;(dj|? zc_@%!O^lAFR8Y_{XlhwK;Go3_YjbMb$=qUNAO)cAgDZ^7{Q>*1s7@%sC*2V>asB83 z%gN2Mo1wFO)V4keVYB=gcbkktVRXFowetr<&ozFt**Gq8$ye}A7(}b zd{LdR+4>|N&`)M|s&pf`?cM?*AEjH%(zI<&oWo{jV|s~26~nIyc;8D zgx$`au(^8L>Uj%}1AghURnhC9+DJJ0d~x#e?Qz`sBasD^lQ*DY&*)XO_R-IYog?Zl zmlP!t5?0L66ixcZGjCZ;S3>x6?Z`yN*ml%`_gUWqW;gk-uPtSzs0fyW{S;iZwY7&;mgMe;=C`K!X-PcQ>Jr{H>ro%Kk|COd zLc7Vu9dy~Nh?C;~nY^gaxN1mpJt^?gzYM4Ugb4f8+9{61inY{PZy59CuM%BvUIBFklGe!m-BgeknXwKM@-?h8WSKZw-UU>j{Qi+%HIoKaX&XT}d{gTMV8O!Y z_g9jcl@x*&Vou}0yAKUDc%5%A%JzLpQnpt#*B8Fy2gj6veqM#^XJbWwfi@R9&{oT2|>&jedS?zq8CC`pVdjoJUbt z6Ob0lT&YN=ov$pAm;oE@(jAvIybtj-^lAt;P zyE(>uImnU}^+&zojGmL}VmLOSh;#i3^ybuKQ(dI*y&9#b{d$2~XHG?G@l+TxPCxB2 zhQdFBi2QL6x;GUa@1IgHl=)q37c?2{R4}Axf3h=*T194o_muA9yZa@`XLsQ21&4>i zdLY|U>-jA>i@K}nQ2OWtT-0+aS&Vh>9_wr)-{lCGvRNAU9XI1?p(lJg)+|FcO)pc8p&0OuAUT2hARlavYd=A5Z+=aWkz~bjLbsr^*-HX;> zA~Zhl=<#ofm-$r;ro&`j;K7^KoPuI332&;IA`j1wx)mPKeCjB3z_}YbuTS>iI6ip< zeyw$yZJ$5qecx}$!NCs-J;R8JmYN2fK3m``(&P}H)vz_Z8@$s#tJquVWTzJkA<v%15;hy-`j0e%%cL$hNXu`JCtxsshNbG3`6*s-l!I4X4( zE4w&RL_*01&`tjDoMk4UnRGTXncKpV%VAh85>=uX4|-KvPfCMyWIAvb0kLl4!5WQf zeTLV(^UC`2DORHra?{^cs(v=89i%M>%#j?*MLGQLW&cHbZ*r$^g8E&fILQ?@OEet( zJDa_ny*`--dbQObS=#PtJH8A*&U9v`ljcLUOsj{umzK0dNTrH{+M z(7qmJ&#f)pa<<{=Q*WpgL7uySQdz{im5zZfEXiFXYWk+HZN zs{5?n@2AKae`6cO2%O;VXpoLIK7f?3riHK}JZ+WnkDxwEQ1VV+=pQ&%@B zlzW~%95uopauZ60yddc$UyDJ+I%507zYkA@wdHysoC6MeWxnJXsP}p7h$*MdjLkMI zr;3siJ)7<|1C3A8BUS6=CuO%8YgEV2pxF@dI6=>XN=Y+Hag*6DFY=t1{pdZdH7Gdj zjIH9i$%>*I23LOqA+Qr!0dW2}m@OVOgXTKpp6>egxhNuL&N_`3r-)7Si__Bij}oh= z>kN`5Vk7sT+Z3RfU(=|uJjLcfX@_rf7GsQ-c%S$MYx1)}=t<{pmk*n>{#tUOo2iGl z1yzfSiT;L>pmXUkICzv>Avf}-k3mzK@%L_)zB(>D|Ka(|fb&QTZO~M%8$MP#tFq38 zXyvgRd!W5p(9MdmLfKJgH&eP#Vz#BZGXgc{K9{Ne(4L51BKC0HSY6RB$P2*awU?+d zaq6jHsCq~y>f|@|w8tDf}KiH}w+u?>Gr(Xq?irBBSI{pwm5C<;Rr9-`!= zR=?EkaL9jAZ75>9pZa-A6q-0>?KSsfN&aDT_$)Ep1rgEb=TS_b#D1r|saf0d=vsHmZwaPtCQP z0ei;e5Q|Y@|CJWWj~Or3Gper#tDo&+&Ii5U_EW&acQ*L@lx+cgAJkh2Eht3i41{7C zALzXv+RUe-^Dxr5r&q2P`yC(`-Qw6UBkJx7+Vto_2_-{-=(H%S ziM!-1`1D%E;$$5I-5OS8w?6UdDJww>pBh?j*)|6EhKR!?`LxNcQ^KdDXn76*AnRbR z1?O036p(1~uMA)yX==@sH&iqCpHjuewnM$>2DGw1_5aRqeIjy##F01s1#!~+ihs6O zxO)Tp)gkNK-^ren5fccpDp@&@i{`?5C|>VJsHGE&mL>57$(^c9a}Ue_qbWMj20s=L zslV_ag)bj0Pe^8`D)Z6?)Atc2z^*yiIO{UzeM7k=l(w+d1Psn`hKGMd&ttE;UKK5y zAw_aDrLhTa(Bm0+tmF<#ifYOFFf3%wSA+r~b^b=DbmN*J18oy~ZcaexS}0XQ1pNIb zyb-^|aVg``;tl%2AHTT*)p$;()=G{#<1GxU6rCD`(gTCFi1I&4AZ!X2ZRby2{NcymB^gz% z;m1DAjwTWn@;FuJnrg|z46%u8{xKjT*}k?ieVjd>jL9m8Jzfq2BBTH80&zG+)iR;_ zrG$?7membfK9&m%$6-e=IV-Q67haMjiFQdRQ};DEO=mj|iGH;xNx__jMZ)VC=XcN7 z1Jq(BUZX`hC{#C~j+Lj=MZe8_PdGr2Y?_2`(&qStz3^zztdm4gN3{R*?#u~k8uHOq z>5Y(j6lHuCkf8fQtz8;u`oBule)7iC^_S2pfZUGq2dRF{_kBvgP2_Xp^skg7&+f+X zYUa%tqgy`AIIc>#6Z_SQ7(Ll!F801QfZ<@@-9_tI*52vgU6A&zJR7&%)<%yMhDqEE z*=th;BSMTC^uL9QftQajKh)+JfLavyaw5JS$@ZXgmfkXV`7s66O6&3a z?4eYAH6mXicWUv@YjyO+9%Gw*6C!F|zkHidFv>3;RAXQAkr0@w=+3ZAMx@;5J5^#w zQtBb?>Katot&9ZmSAjkTyS7o+N7|e)s2_vCbZvn=kY&v=61-dQ zbU?WQ883fQu}&+61reWaF6!8keCl`ftwZI&T_pcz0;!18WD3Iw9b>cRA>hv zNUIKuJNNokcntk;UyLz#1U_l`jF74*HKcwu6XqsGbQdpx2w&{s3FJr=mX<}Xy-L&r_ib0#M_*Q`$5XUP?A{$8R9?oK!~!*&G9ET!8HpX|$eK%JnGx+KD~Qvj`cTi1=dwXkUR z#0f=)Rux}>xR!sYm%irLtZ@3;FBxWGdDG@`q))Fd9{9WC7i61;kv{ET{eHUE3_ADfDG;!b@6C9qYllG!&R zUfAEa4VikU?u|Pm@maOG+yDklTy9sd;|A^j(Csh=$4WhFD-ZYE(dROh5BNI^_5KW` zx+lDO-)k!nr8KitsRyiN=1wIRcUFn!-ZgQq97@ z%GJGDkHCN=PiGQs=aAI80Gbgbp;of(V;Wj7+xAEK-;!9A*Cs-^S5g7OcI|y_0 z&+Z&w7mZ|jrPW4fqhA@w7>JZHjqgRV9~NUlK4rfqH92)k?m$Or-+Q&D6(ZjGnM9)sq`epzTv9!9)NzvERP z#qYxBE$-`dy0_Yim;BgKmYhUNl*ZEQV1WB}tp53jmG}Fx>kE@Ys(JozA(5hOd-46@ z7!y;3G@ur%ebsA(Yz%y(NR8>9n!{RSZ()VG>&0_gTQjY(*Q#=ju>ODY6xBpmb>{vU z%T0QxYOyP1>7hvW%PoT>P7H+GM2`LPrJv=`MJULl+LS7r;OTT`i*MDzl9Jww1j%P7 zrv?+I<#cK61(!9sg6nZUdj33yLFis6cNTfeQ$uSizI68>Jx2O3=`;P_c9}$?jiTPH zkMIl1qs?`lsriM62Dav|vGFQXzN-8jU8RAN@N2H_xMXA z#3wFeR9DK~~Y(LvJ7fQ{$__($IU=N+6H-|;=^AyaJ*#@QPs%5z4@uh%)BkY_Y zNIkdj>2a5Ak(;?4S>)fIYFLdvj+g-56KmCoMK<oC5nmg;_sUti6y*{y;C z;=B7O4&VXTO+oH0d_Q<~ZW9iAtJg6Or9pd*S8(tc{G@NhRBNPXq=lC7 z#*W3S}>3e&B{JnrvF`|6vU(MS5tDYb z$zmsWxluERQ0@m6$J{){Wo4}zf@s~Be;Jz=p2~3Dal-VLmjV7|-9NnSZvWO#mi!%v z2WDlB=5FCF;HnEg_)jqJO8I;8Mdhj~}ycM}g*J#!*_ZK$Jxbq7>rck5O||K16jU1 zJDSg{-3T`J*az1CZLCt4I_Lz`D)qw)!2h*ZNB`bK@EFWU`14joB-5F#wrgL4|5t0b zaT~c!HdJ%M943h8ewTECv-N8{i>h6<20aL+j>qTCQ17ro)ls+;Apypvl1W!6*SonK zVIH%zh->zIx-gFNGfBQ@RL&a)+jQ2MrYE7m-jTU&{-JT1$BzG6tq*$ji*F`p=%r~) zF%2AA^mrfEk59PZ`RThYO+E~TK6&_|0~-Kqj`GAkUPW|z)&PUpZ-zvTp+(%EH0Cod zW&^`-%hZYf1h;=SAo{IyQO>5fH*nI`+1W}b3^R^7I@Zy7%CgX7@L9rKA7`Nt$~2Br z-Huk$dQ*h!NH14BV#D?owQh4oDU^JG!KCdH0Aaqca2`Fmb^XdeI&2g{DT8T3U`+OV zEEQ>k+c-v_`teiw_AY;}kjetD#o5bMT<+3$!%q9?%jAb8SBrYotsqZ&Qz8@bBi;1W z+&5=r11c@=4k<9LM~Z&%wG|t5OCse; zd7rTGp=if4@DCO}LziR)&uX74(S#6l+1zbqX)BnLQBLW(IklT^5(dIzR8=C{YQFL5 zv&jz{{8puOPE9NY9;elzizgY3v$`c8_XEB+9ehpBzP@8*I_==f1-4#lY4jIM4Uka9wVN%4($U9+FJgWq}=rVX(x5ldII*5sU9oQ-}tM2JGHM?XUqo-fs3^% zZ_M?2@Fzyzo3P7H)8ZAf>|v@bS9W#}NL}vxjinfk#PdFzyWPz1+s7Z|Us+J{zG^j; zXZw-MQcw6*`VTbIacod&dvQBu@<=Ap^t(1N>(IIZi`veO>TR2a??^!F#Lj1%tP!eE z3NGFjccH5HdEdp#Mz6Y74e$MnxC)PLJ^vV(4PV+ja8mHcZ{KAKDMfP@RS0Lw!#2CR zR=BpuoP6V|%OzSbUVp+st5Mdg(tqEtY~aq1n;~|u8|HNIe?q|es=h28<~cBOR7XJ7 zJt8GwLH(%wEWufMREIKQ;v_;77fuGr){c{pWtz&bFz5n+$&0<~wr<^KS1_=Z*ZSTf z#m5)JM_!@N|1*Wf`CWNJsT#nGo5{SJM(F_uWTTNCo@zL>WYHUPU(GF1zP`bsBS5rj z3$G+@9rTU)$&%7Hcb9H8=>D1z6YU^hzyF2VaotC|paTx~o8R zP9WUJTi?xbU-S!m5(SKyA=`9+q?*22!de|V*q%SJczLt?yor#Al-S>DUcDbJRV}Px zD%9#`Q&LK&oHTD zinuGm;pqa5a=?-h@=mm(~M7$F?Cg1Xxcc?(xrL!^HTEZC6dx}`zw}(0?C1{^g~MfK zU;RC)U7ExD&GWi48$A#3YIzH}>T~-H&7^XBT}S;{u#(K3Ey8wVO7xcWBID=R0+xv% z_84&AMwuasBIbH(xxt3x5B@lV7t+mzh*~y8m*khQ9n^U|H)DC&D;Xsskv~jq>fxAN z&DtRPwQOa|M<53+{A+h@DkPi+1{boYa9Hl133E@Ve5?0!NA%aA*!TB#e41iDlWkoT zkN+V#m2(|C4rdqeYiHH35ouC7K%|k{N{C6AYu4DkHVO)Mf=J*u7QCCQqjbf#b-f~p zz|+cDl-LuZ{$bo`qr*|*nD_c(zMsQ2+;Wr4Kb@UvJ#qv6q4CGuTnTCZ+rQxA;?(G= zY$7N|-gQL5qx<7=%Bt2Ch-gIMsQ$+cQDgDt8)UkQcD-HK2x;yL%Rhd|xrdZ)0 zHEk>O$vSO8XNO3}kj?7Q2_|N%q5~U4rF|--B)q}o45t$dwB+Z$C$HnzMhW&Oiee5% zPmaLDp@0-1^rV&UF12z6s;DPA*8+m_IudPzsJVYWoZlNJKET~=6{H~lLN*rG9+f;% zzzxGRdo;;&m_opq$0}>jQXq3%g0)Pq#!5G_pgE>R?|4Cx}R_|@E)$&$c zZ#8X)VA`dT{-?k9mrxoOR;T!QQ+qQ;>nl%3r?fGXi~o&bq6&L|xA80QyXxB<;SQ^% z*CWGx95+edj^#=RJzpW^YO>8ia8nq-YSmB6#>|HPXD)@2@k!dtyfv(q3v%ch=}#Z& zbc>}kV7>KUGG}Z!s~T8J7Qq+!h$=Wr4)+`TGPXzDr&g9&-$SIS$cN=7$8?+xwyyQ$ zDL6#rv=Qmo;3SIgHNNj&AW@44?$Et$C0&DGA&QUEU)HE4r0hw5SMxbf4V`7n&1Myw z1F6G!*@)dOA@JwnLCh)#?!G?5`l47$$#Jofmk&mw>vR1z>^#}g6d#& z{U`?S=uRV6ZZEHh5YjK4vumsT=MrCX>y<_{c5|3gGbhbEHUz!|WI`P@ z5QN~6EWZ4Qio{-pA0TcET!dUKBCzI&yHh+N0HsFT{D^pKKlpE;>LuL^vfIPUB7Wy( zY7SWD$@X#|^l#fJV(``*wh10YpuH~<0o2a{If6aDQAX%z6lQ+Y*Hcgg^0enX)Cds) zzRjNxf_H%s*mPbX!}&3J&V2sl6yPfewDRn|x_7Skgov$vBg7VYyLd$gC4*j4a8ze_ zDS){hNSY2y7d)0=}+t2XD?a zh;2;0j3MwM5BD%t*ndPQ(8&n}R1%&F=X?aiA`qw-(B8%X^n;Z4$o&$r#T2aErxXAz*ng_;*ds}1m5 zUwFjhehIi4ItwiV6Y)wM)7rh*S|1yYH4d^*Oy$n7KQyI7{GJh;u4+#knhxz*I1j}Y zeQ5%6jw~R^a@t^xi^cQG&=)O_$21?km)B1hG0*n@?G1P6Ld~WA8T21`@Jl}3=5@wc zi~h|q1Nihj!RJbN3<5SxQolBOUMvHezP==fJrx)oFTxjUWR2in;E6T(Ma$EIJFsfc zy$ArpAcN`YgGq%RDUkCJpMtrjgOc7s>A-Kh5iH3yR{yJG`5;1PtyUxQFQWVgvv+Eii%)m4k8Dpo$<7gyN3%>i3gGjuh%a z%BHCP6C$>LK^3dcx>OAH3MQnVGiwCi;omTRpNUu`r9?vD3mNzkkOUP1FR;sGc!Mu% zZX*zoNR3mCxt+y=vgedgeUR+g%i{WzV=NqTtpSR$c}@MFcs@oid%YRZD5qB>N70lo z!sOsAdK$kCd7ZRQ&NmX3ndv!*YR-E zvdb>ETvBuC-h`Ii&Txu=FQHL`%_u0KZmTyf%CG>40c2JiJ<05u0@~DkHa7*Kf5b(E zq+=1t!@7)cT@d_Y?wMuKD#g9+J5vM=7u6B-r|+@5)!Tz1To3I2fCu%V*mog0CdlAo z7+n81`VxG-1sTD!vW2=Ko))*l=$&8uhIaf3u%5ZyAbRO>-0207Z!>Fy?x_r~QPy5E z;CvI3XZMRwbd>KbN*?XMQe@-eRmRBW1Ammk(a$xsLstJTRHIKVyj?nTe{5=j)=YT{S8xmy3q&ITpk<2Y*X8YnAca~em8Lb8@MVEL+y9ZOY_zC z|Hadn$3xZrVH1%eNhKtDTC{0eND)IytF%0&cybi2lcr51&JmRsQmJfdw5p_OW6E|& zNF`g0D2MC@vzzUlbH8`L_x-$o`Is@snfpH9?Yge-{e@c*CD}k9BIy?LCUy~xklb?Z z#IZ#*c@kb@=Ag)9vc|ehAGgB2w}EFm7lxrxRBi4w)|S~$IE($}<}{4I`Ed+>2_18$ zy;>uk&(M0`HL_;Z-@~mJ$XGSiN#NQt>xy@wa6G8U5V3U8-xaXR9@&{IG=W~0KSraUfdVY1J#%C z5RAS_tnC&#mY=6)+3%z^ymmOd9_fJtP9{&=(&_l;#)t&?Zx3tBgM^)+YGyTsz&ba^gsE;AbjuK&0iv30~0=-Mzv|2+G=9lDNT+$ zwl&TV*Dr4+KXKzXsV;Cv6plPs%LRh%9FJDiPCfpq563_?s*$T^RC3hs96X01-0y%aRB9!v;b{e~Ux)@?)SkDQ@|RV! zmGF=X4*4CY*`l5qxPRzm=%JWlN=q^qSFmN4r25l)P;^ScY#u^8te5)J3o-5BPUK4f=4;z5PIo;LWe5F^@ zQF{SmIZX5EnFnPoD!c_6JHV*$B-s|}$WaPGaO8qXfr49S29`LN;=>G;*KK__{jCJ9 zM?qU~lKVU(Vb)^ zdtX@Gn{Y{Tz)j4DG3JBSlGP(*QpX+|ggJljcV5_eMK^%Dc;zdc>P|@@k5In}qddx5jQKoI25#%UJZeUo)UxJXsve zz>Id@g>j3!o1!OwYt%iKf+%?~O_;H)#xJbEhmJusX0$$jvG!RQ3TO7h^kiKZNDa!5 zDq*;PMOcE&315jX0V=;acg&Q3YPs^3qg5aH9IZMm_MIhlRC3bmu#!K8+AmpimDzNH z_Qh|HT)h4J0$Go@!Df10B-L0qU?#0bsx{S{4W#n3fvr1tfE}U}a>sfcjwaSNySJi1 zF5DP1)rt<6bT!U9cz&=uvrj=NE6|pH+rFLz%2V>2ZNolllFA{Q8;DEZ&%yfI@L0}u z{nRCmc6AhYH|Vecb`p_ zdXrU_O}&fcD!)ZcI)2lTGURCBudn^qGqmt_OeCN`68(;(F%0*>Z@)j*1EW4%kq}Jh z9v|y--@+{r!{!Gi5}g>A6MvZ0TZm?WMeS)a4to{Xk|1mdz9bt|K7+m_gsBHV|xNzV)=H=z66g%{F)ogsw+S^yfC+)Cwg5;}$ z(LoqtLCD;XOV`nlU!U29(;=7?F+)He38xzg8h{O{fAeOi<5t$NA03XXxQZ4yGr5vY z3#eRtEcJGEo|7sbqpUSXxhQ+>L)q?a1a8$^TAfE{cGLwV0jJ|p zN{!ghhO=9WF8zQ5nn5@2x>+gzpdciCl@TgMdMX}a4=18^d8cqVr`8GY%oO!?!r(#n zFv=0U${GlCvaMqtpKt|=njz=EQR*J+Mn+kf0H5*9G$weW{hw}KcaBdU0!tQeyclFeMp(y|3_VdQ`w1D1@wo3L}jb&o3 zTBnyc_aTN(quj$+s6wv4S!DfsK^`2NJN8HD5)Xb*-$|KLK;As5uKiEzD)i;kA2KUA zBdND?%eu{IJJ+Xh^??Mm9_aw;;N&t@wa=q-G#5#D)Rp*TRXs8J;pr{?!cSk;-&GOj z^VxfE5Q~0nz)#B+n-k?@#BlBnH+-12a#wqZ_}1(zWt#D2sDQWEyN9uTX1>-xFRPI@ zxhh{7NpGrk#gLXB>#vdY2)vqj+|q+Qi(F9K)5UEd7px75I6rmfQO$)TnxK1F@XbNt zo(H`@f55}-S3d(UmEyF&i(Apv)5tt$LgnF|p`{$Sn&k=Ipg13Q#(>}`wXL|DA5~5D zQ<^RBf22p(AH{a}4Lhpjx+@OZ6T1c1rqQ$Na2d@4 zJF1xL<9YPTfPJjf3OLdU&WN6WacV3ug!kH;eaU~!Ay z)0ZZ7cknsqN#`H^jyjTK)}Kz)U0rdDy$-!JO3Wfh47;yup`36Hd$#{AP@ z`}J|X7vF60-)ynq2=xciNxk#Cndo(#d?RL5{3Z@Cq?%}B5JSL`e<3uN*l)T1wnJfE zZ<1&n_RUZXOE}E7O#utZP%!?!1q!Orc#ir|i9Dq!#uY4c`*?)*KDuDov3C5sCOQY^ zujM4Qp-+hPUSjo1^5Y&cBvRm}{*#pPy5H&8NPE-elJPom;@wjHc7A^DPnej3p%ysv z<_O9<_%!&Ed}`)zG`-(=hnjYp;)s3<8xfuIHd}W92yW0+@bz5EBZ}b4VO4Tb7Ms4Z zLI-a%t=U2tD(bvp26iUpAZz7^$*Pu%yN_o0L>g|_r(8nECcmm*0e zlv9KCMPv3|513XpG_tjHZ|_QFPWdKzHp3T7&t^vN>fuMl+XgL*rCA&P4A`QBNi8_c zZ|T)X2rMfbO9+TVV-UY7ht)$oHI7yh7grF7N4eMRm9T`7%$2b5VP5BNh&u2?u?|=( z9w5>>p0F?bQ;ymGR6MG4!Vc4E%#vf97I;e6)UlaLt5oJ(iN_^2s!N!2u5C5^e4})y z&}}PR5zEVqQd2q+^|$wB3KTjqv-Si;!{|vs&t}M5Hg}sp>qZU;LLV`)B!bFZCS8D0 zt%Uj{^lC9U>4kaG$A!EHcxWg4sJtRWK%Y6AaVOWc8UfO7-HsvBVzMbz;|=l`F29tGY%t40gQ+(D zordRl7he=WTYTiztlQgDTM9FgChnm{BRD?T_{co!@@~|k^>D|l*D(&m&R<=mMefFE{5I!z~Vg*x^ z-u#~fbTKdM)jMA zQHT;6+#H)GF7qE$8G=&T%!zlEevxC8oBCX$#c3d~YLUMx1Wse-N9l-L;0UlG+e{eY zrSKi>JNr@wQ)P!0!h%GDqiG2@CY&9!68OR)@&{_Fp#j}LsOHW1gj)3}9GldB3tez` zc`{0N<3nuC+36@<^?H?rchR7X$W<@Fj2iCa3n~ET*njE+wXwLYT2DiEPiUu>2V7?+ z(W)5wh;(`59p+DUc8U);AAKhZwQJw!e*o5-n(QLEU`w6*EE#U}X4ckt@YuV#2c!L9rO-A6YY!*t%g@=Y{M4s5!45#kp;BdIb_^JZI^dZ|WgN`z(o%JZbS$Bun+Rw}(+; zJ39JQNiDbXct3KDxz0@Ft^9>uh(mYmP7I@t@|g zxEy>oy93SY;Y6wdw&;6M6?d_5gudM114YGRQxp|^h*~Fb$ zZH{WA&r`QvoNSPp&Ddp1PUw_!X@}x>xWC+mbZ6N9^%Xu8J*+|0{F*hlAgqWPz5h(W z>471#5=Nwi6%b5wGZAc{9nrArZtjwwFKP*Q2XJd&lGC=jSKdR^%N_Q2lLqSd_XFmr zVnilb(dq%J@}bU%zYoB>e%f4%Y+_6OW^v}DQfp0BBD04_8olG=22HShQgJ~~z(Iq5 zkNm-;f_~fGE4=65!|xRsouIpMcZYK?DD?~$tPbzh;FauqWH-}uyrQC2uX~&RHdo5e zUC&%flyhipviugf&AagO&X0$LCqlJ+aKY%%Wl@-I-g0?f-viM%R8c8yYtcH+r<-y> zy1E9f{vLI(5yG}H5Sr4krpz@4zSoHJ=|G=YOZje!(Yv$$mR=h<)#Df~bekW34D~bB zJ^RXEzDLENf7^(P+<>EAhKEGSJ+@EetqPg4_KWS$ZhV;Aa92x4j1h=!m2Y}}UPH3Z z1h+yy);9N3`)Zd%Tq^b~*fN!!axi>ub?HArNM=n~C$S zs$ihZU;G+xu;#6?CzC|RidS;uQO0x(uJ@*3xf4COM+f)*O}T#?1a-T#`gnnB&wEU% z-0$sLpj2iFHQ^(K`6!RR0Y^KI)GE#z37@E| zk1rA08K0M868+bQ$)uu7n^Tg;>WM6p-yGO`tZd1O6OClc;Y%u8sX}PcBn9@Hqker$ zK7Kp4y0>R)OFy%9?(Oh%$3dV{j^r(zaQlMEh>l~kMqar4$WLOk6JPohnBf;!%(^DB z0rzJ;vf*?YzWfY9+WNeC|JHfeG4W1kWiPBRlv}7k*$_ij*z{A?hip4hfhUbMW21ru zWlnDE%7@1VSYN#Rb9IG#Fu88bRlg%{v_S;vJ)#8G)nhKMW*#sd{%A4DH$1T#JVSK$ zbeyyiduupgNqRLHPm!Fm**}-|>mPYtbS&!jf^Cn#!T=+`V;Eh{Exf(_9sLB+8DocS z(El}W%uD7)&M|^&_FFP;-jvxoVS^%wAr7iJA+N10HN?s^`sC^PM4dN%Mo~G2SWoUa zym|(*G7hlFyqYZh^y<4Co#deeoR)pR>C)fW9UY?dCucYN=KpRQ-J0sQmwP!E87#e>XIcW9oiuHxE*<~Es?}>uFjy~bFejjJh zs(SC5GIuXB&+{aCTv!8MK+}#Zt*DQz-02VEl+bi|)g+Gq)5RG#`W`aS{GuGM zKhla+0rDmAj>wU$!b8{r*qC1=P~e)NzdoqtEtxf{?)YR z*wL9)Qh@_r%{AaoI&^D;dJua1Fz7hi%HF_G?SnI@gQ!UxFoywNudQE5I%xN>gAQWz zz}GKB{H}dY#9GkFownmD_OZLJ#>JB2j2r@u99^DFcZOSAd}v(R@B^igwwO`|S{J(& zuNW0T`{+t}p{Idj|7<*1i{wF2TO8`rhP%<9yf3Pq$5+uG5h>qoEN~>o6@X>Y3h25# zm2}TIm*<#1sR`82ly$S|zy|y(j;0gCj!yyx86`5%j?Y@jmh!EYtP_(faNyo5#9nE3 zcbvTJHAnd*VYzw}nnp+*AN4vzxUtmuS`lWQ)u;DRNL;69ZlbCZTRaJ7S3q9CuGkrz zG%j;G}E^6p()YkGHu+7fVq2EYOH4+*lu6L*b#8EGmMK zLoZD*2%n-0rfE4G2U)caBSG#BbipG4SHi9ySL% z>ac9Hq>piA_$bfl_cFei6d^*s(yX^fyQQ8vVR6lt+Dq2?{lk1g>^8jBZJ9&B&J;PE zH$A_%dUZrtun*S?foH(_1*UlNg)q%xccxfY$ zvnnH2vZ+mEZaf{7bI44tU zS@!-`m3JqFkHx)zZQ$u@G{(IX3wUx{=PrrhN}X~5?0+m4+^kcE0=(^_97WnD5XQcLg!{nIh7Q*{EA6gXHU^bz( z=?hG;slD$O31VLicKW>d#|N12|0C4(VNdHQJ|SmO7M&An4HN&fY8MbXyQx3mE?ubb zgW0JP&*0!+L5R?i%t6zTXavjdOe7?{L-dAw!!Q{GJ~C-io3)z4%Y`7Gq=`QYFcuHo z3|y#{=tr1bkO@Dkx%x$Wp1uo{vVg@DL)rq^Q-D#dO9#rTxpKb^-ha*0-tihDVYby1 zjS-h|G|906TzW~{M#vz&0aDP2H;;r$Ari*~cM%CL5-R!GuGG>3wS697RgQa<`S(Ub za}UYCY7HlK2#IUXWN;#A+s1da0lBy%oQS

sxDXcN*&6? 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 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 f83c4268558e827823225290b4f3b1c2407fe331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123704 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�*EVwCs| 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

`xAfEMt+^zvUTxgjvd@O*Jwj9lUNGwg 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 KY-Hgv$NeAX#-AJj 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 209582df56a0e1e670fdb66605eecf1aff0216e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 zcmeHLO>f#j5S??S{s)U9B}ffwuT(vx^h2qt1cj(MRFP`HAymd7+oVNR|9ac^cD-TO zYz)N`IW)2``@J)7XXnlM_aC{Ig(NbRTqZI@DUf3s;W?5E)MpaQd-WbkB&i(A7wOAV zGK`O8Ds9wqv`;W|ELWJ_#EP7y$G7CEJdvO39iW#FN5m3h9@j|l8_8$XV@MLA|22Le zP|6|0JNZ$J((CoG*G%TxA3ciknU5aD@B7In^*zdce#ExL_1nI!582FJ z|HobT-}l{k+x6F)0m%m=c&|vs81%~v)HM5&dt-Q&f#P;@G2;jFaELZCHRA@&#^j3z z>SPdd^<0h1P$pjwln+heMK#M@qiu|x=vmEfCJuUozNFYE0@L@@m>aC#QXEX)94W88 zyWBk`W4346U9aw*hT)PFlI02+#)x&!W)GSsnx z{ohd6%8dp1t=;t2(ePpJGP9>9ayHr!y_{{~Mk{U8{#xXj=f|iHHv9DfI;XU6mJgLW z`aI-WU*K*tbGCKTCtT&b3{x{I(%JY#Md^msw#oF#zqBzkhdE2NU!rX?lS@^GncvOy zdAes<&E$q5%FIc1zD?T>z~toVIpP4y5TNX8!VzR~X2?U7V!Y`MSIi!$)-hIK?7)#z z2SpoEmmL^C`t)D~yFgUI?*Qhj2*;L@ax-}5Z*6>U;fyI(&?_^mE~9w@S=)E0UBSzD tcFOLs;sK@3Y*#wgj`#EAJ(J zJss=F?+H95nTlv%H{4RagXv)C>YBGH=pPuuypitc&%Bldye+7wzgS}M9a&SK>4WZohw2`F%zgNeH1mwL@<=JD74_yPJjZbK|C8#VH`9|kURT69)s+?+ Z=*-6&MVEL?ndSmr=5f^0*Veo5`35^-Y!(0j 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 . + + + From a50c243c62c24e74346f849397014ebad9f72b37 Mon Sep 17 00:00:00 2001 From: Nate Zaugg Date: Thu, 29 Oct 2015 17:49:02 -0600 Subject: [PATCH 2/2] gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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

Cq2x9fGz#89Kfz>6~1ekHjQh$BaJL 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⋘d0VBfAnkGNPkI9fl&Rsihs;WJ9Dy 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�hjr?Gj}vrYaqB8JIqYuzu)enZVz;J?ZFe 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