diff --git a/lib/packages/Castle.Core-log4net.3.2.0/ASL - Apache Software Foundation License.txt b/lib/packages/Castle.Core-log4net.3.2.0/ASL - Apache Software Foundation License.txt new file mode 100644 index 0000000..e259b58 --- /dev/null +++ b/lib/packages/Castle.Core-log4net.3.2.0/ASL - Apache Software Foundation License.txt @@ -0,0 +1,57 @@ +Apache License, Version 2.0 + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nupkg b/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nupkg new file mode 100644 index 0000000..7ad7858 Binary files /dev/null and b/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nupkg differ diff --git a/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nuspec b/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nuspec new file mode 100644 index 0000000..3fba043 --- /dev/null +++ b/lib/packages/Castle.Core-log4net.3.2.0/Castle.Core-log4net.3.2.0.nuspec @@ -0,0 +1,21 @@ + + + + Castle.Core-log4net + 3.2.0 + Castle log4net integration + Castle Project Contributors + Castle Project Contributors + http://www.apache.org/licenses/LICENSE-2.0.html + http://www.castleproject.org/ + http://docs.castleproject.org/GetFile.aspx?File=/castleLogo100px.png + false + Castle logging services integration with log4net 1.2.10 + Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + castle, logging, log4net + + + + + + \ No newline at end of file diff --git a/lib/packages/Castle.Core-log4net.3.2.0/License.txt b/lib/packages/Castle.Core-log4net.3.2.0/License.txt new file mode 100644 index 0000000..107b1fd --- /dev/null +++ b/lib/packages/Castle.Core-log4net.3.2.0/License.txt @@ -0,0 +1,14 @@ +Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/lib/packages/Castle.Core-log4net.3.2.0/lib/net35/Castle.Services.Logging.Log4netIntegration.dll b/lib/packages/Castle.Core-log4net.3.2.0/lib/net35/Castle.Services.Logging.Log4netIntegration.dll new file mode 100644 index 0000000..1905335 Binary files /dev/null and b/lib/packages/Castle.Core-log4net.3.2.0/lib/net35/Castle.Services.Logging.Log4netIntegration.dll differ diff --git a/lib/packages/Castle.Core-log4net.3.2.0/lib/net40/Castle.Services.Logging.Log4netIntegration.dll b/lib/packages/Castle.Core-log4net.3.2.0/lib/net40/Castle.Services.Logging.Log4netIntegration.dll new file mode 100644 index 0000000..3e85cc4 Binary files /dev/null and b/lib/packages/Castle.Core-log4net.3.2.0/lib/net40/Castle.Services.Logging.Log4netIntegration.dll differ diff --git a/lib/packages/Castle.Core-log4net.3.2.0/lib/net45/Castle.Services.Logging.Log4netIntegration.dll b/lib/packages/Castle.Core-log4net.3.2.0/lib/net45/Castle.Services.Logging.Log4netIntegration.dll new file mode 100644 index 0000000..624453e Binary files /dev/null and b/lib/packages/Castle.Core-log4net.3.2.0/lib/net45/Castle.Services.Logging.Log4netIntegration.dll differ diff --git a/lib/packages/Castle.Core-log4net.3.2.0/readme.txt b/lib/packages/Castle.Core-log4net.3.2.0/readme.txt new file mode 100644 index 0000000..b947840 --- /dev/null +++ b/lib/packages/Castle.Core-log4net.3.2.0/readme.txt @@ -0,0 +1,10 @@ +Thanks for downloading this Castle package. +You can find full list of changes in changes.txt + +Documentation (work in progress, contributions appreciated): +Dictionary Adapter - http://docs.castleproject.org/Tools.Castle-DictionaryAdapter.ashx +DynamicProxy - http://docs.castleproject.org/Tools.DynamicProxy.ashx +Discusssion group: - http://groups.google.com/group/castle-project-users +StackOverflow tags: - castle-dynamicproxy, castle-dictionaryadapter, castle + +Issue tracker: - http://issues.castleproject.org/dashboard \ No newline at end of file diff --git a/lib/packages/Castle.Core.3.2.0/ASL - Apache Software Foundation License.txt b/lib/packages/Castle.Core.3.2.0/ASL - Apache Software Foundation License.txt new file mode 100644 index 0000000..e259b58 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/ASL - Apache Software Foundation License.txt @@ -0,0 +1,57 @@ +Apache License, Version 2.0 + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/lib/packages/Castle.Core.3.2.0/BreakingChanges.txt b/lib/packages/Castle.Core.3.2.0/BreakingChanges.txt new file mode 100644 index 0000000..4ca1787 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/BreakingChanges.txt @@ -0,0 +1,71 @@ +=== version 3.0 +================================================================================================ +change - Removed overloads of logging methods that were taking format string from ILogger and + ILogger and IExtendedLogger and didn't have word Format in their name. + For example: + void Error(string format, params object[] args); // was removed + void ErrorFormat(string format, params object[] args); //use this one instead + + +impact - low +fixability - medium +revision - + +description - To minimize confusion and duplication those methods were removed. + +fix - Use methods that have explicit "Format" word in their name and same signature. +================================================================================================ +change - Removed WebLogger and WebLoggerFactory + +impact - low +fixability - medium +revision - + +description - To minimize management overhead the classes were removed so that only single + Client Profile version of Castle.Core can be distributed. + +fix - You can use NLog or Log4Net web logger integration, or reuse implementation of existing + web logger and use it as a custom logger. + +================================================================================================ +change - Removed obsolete overload of ProxyGenerator.CreateClassProxy + +impact - low +fixability - trivial +revision - + +description - Deprecated overload of ProxyGenerator.CreateClassProxy was removed to keep the + method consistent with other methods and to remove confusion + +fix - whenever removed overload was used, use one of the other overloads. + +================================================================================================ +change - IProxyGenerationHook.NonVirtualMemberNotification method was renamed + +impact - high +fixability - easy +revision - + +description - to accommodate class proxies with target method NonVirtualMemberNotification on + IProxyGenerationHook type was renamed to more accurate NonProxyableMemberNotification + since for class proxies with target not just methods but also fields and other member that + break the abstraction will be passed to this method. + +fix - whenever NonVirtualMemberNotification is used/implemented change the method name to + NonProxyableMemberNotification. Implementors should also accommodate possibility that not + only MethodInfos will be passed as method's second parameter. + +================================================================================================ +change - DynamicProxy will now allow to intercept members of System.Object + +impact - very low +fixability - easy +revision - + +description - to allow scenarios like mocking of System.Object members, DynamicProxy will not + disallow proxying of these methods anymore. AllMethodsHook (default IProxyGenerationHook) + will still filter them out though. + +fix - whenever custom IProxyGenerationHook is used, user should account for System.Object's + members being now passed to ShouldInterceptMethod and NonVirtualMemberNotification methods + and if neccessary update the code to handle them appropriately. diff --git a/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nupkg b/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nupkg new file mode 100644 index 0000000..6051310 Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nupkg differ diff --git a/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nuspec b/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nuspec new file mode 100644 index 0000000..40e28f3 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/Castle.Core.3.2.0.nuspec @@ -0,0 +1,17 @@ + + + + Castle.Core + 3.2.0 + Castle Project Contributors + Castle Project Contributors + http://www.apache.org/licenses/LICENSE-2.0.html + http://www.castleproject.org/ + http://docs.castleproject.org/GetFile.aspx?File=/castleLogo100px.png + false + Castle Project Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter + Castle Project Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter + Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + castle, dynamicproxy, dynamic proxy, dynamicproxy2, dictionaryadapter, emailsender + + \ No newline at end of file diff --git a/lib/packages/Castle.Core.3.2.0/Changes.txt b/lib/packages/Castle.Core.3.2.0/Changes.txt new file mode 100644 index 0000000..340073b --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/Changes.txt @@ -0,0 +1,196 @@ +3.2.0 (2013-02-16) +================== +- fixed DYNPROXY-179 - Exception when creating a generic proxy (from cache) +- fixed DYNPROXY-175 - invalid CompositionInvocation type used when code uses interface proxies with and without InterceptorSelector + +3.1.0 (2012-08-05) +================== +- fixed DYNPROXY-174 - Unable to cast object of type 'System.Collections.ObjectModel.ReadOnlyCollection`1[System.Reflection.CustomAttributeTypedArgument]' to type 'System.Array' + +3.1.0 RC (2012-07-08) +================== +- support multiple inheritance of DA attributes on interfaces. +- BREAKING CHANGE: removed propogate child notifications as it violated INotifyPropertyChanged contract +- improved DictionaryAdapter performance +- generalized IBindingList support for DictionaryAdapters +- added reference support to XmlAdapter +- BRAKING CHANGE: refactored XPathAdapter into XmlAdapter with much more flexibility to support other input like XLinq + +- implemented CORE-43 - Add option to skip configuring log4net/nlog + +- fixed CORE-44 - NLog logger does not preserver call site info +- fixed DYNPROXY-171 - PEVerify error on generic method definition +- fixed DYNPROXY-170 - Calls to properties inside non-intercepted methods are not forwarded to target object (regression from v2.5) +- fixed DYNPROXY-169 - Support IChangeProxyTarget on additional interfaces and mixins when using CreateInterfaceProxyWithTargetInterface + +3.0.0 (2011-12-13) +================== +no major changes since RC + +3.0.0 RC 1 (2011-11-20) +================== +- Applied Jeff Sharps patch that refactored Xml DictionaryAdapter to improve maintainability and enable more complete functionality + +- fixed DYNPROXY-165 - Object.GetType() and Object.MemberwiseClone() should be ignored and not reported as non-interceptable to IProxyGenerationHook +- fixed DYNPROXY-164 - Invalid Proxy type generated when there are more than one base class generic constraints +- fixed DYNPROXY-162 - ref or out parameters can not be passed back if proxied method throw an exception + +3.0.0 beta 1 (2011-08-14) +================== +- fixed CORE-37 - TAB characters in the XML Configuration of a component parameter is read as String.Empty +- fixed DYNPROXY-161 - Strong Named DynamicProxy Assembly Not Available in Silverligh +- fixed DYNPROXY-159 - Sorting MemberInfo array for serialization has side effects +- fixed DYNPROXY-158 - Can't create class proxy with target and without target in same ProxyGenerator +- fixed DYNPROXY-153 - When proxying a generic interface which has an interface as GenericType . No proxy can be created +- fixed DYNPROXY-151 - Cast error when using attributes + +- implemented CORE-33 - Add lazy logging +- implemented DYNPROXY-156 - Provide mechanism for interceptors to implement retry logic + +- removed obsolete members from ILogger and its implementations + +2.5.2 (2010-11-15) +================== +- fixed DYNPROXY-150 - Finalizer should not be proxied +- implemented DYNPROXY-149 - Make AllMethodsHook members virtual so it can be used as a base class +- fixed DYNPROXY-147 - Can't crete class proxies with two non-public methods having same argument types but different return type +- fixed DYNPROXY-145 Unable to proxy System.Threading.SynchronizationContext (.NET 4.0) +- fixed DYNPROXY-144 - params argument not supported in constructor +- fixed DYNPROXY-143 - Permit call to reach "non-proxied" methods of inherited interfaces +- implemented DYNPROXY-139 - Better error message +- fixed DYNPROXY-133 - Debug assertion in ClassProxyInstanceContributor fails when proxying ISerializable with an explicit implementation of GetObjectData +- fixed CORE-32 - Determining if permission is granted via PermissionUtil does not work in .NET 4 +- applied patch by Alwin Meijs - ExtendedLog4netFactory can be configured with a stream from for example an embedded log4net xml config +- Upgraded NLog to 2.0 Beta 1 +- Added DefaultXmlSerializer to bridge XPathAdapter with standard Xml Serialization. +- XPathAdapter for DictionaryAdapter added IXPathSerializer to provide hooks for custom serialization. + +2.5.1 (2010-09-21) +================== +- Interface proxy with target Interface now accepts null as a valid target value (which can be replaced at a later stage). +- DictionaryAdapter behavior overrides are now ordered with all other behaviors +- BREAKING CHANGE: removed web logger so that by default Castle.Core works in .NET 4 client profile +- added paramter to ModuleScope disabling usage of signed modules. This is to workaround issue DYNPROXY-134. Also a descriptive exception message is being thrown now when the issue is detected. +- Added IDictionaryBehaviorBuilder to allow grouping behaviors +- Added GenericDictionaryAdapter to simplify generic value sources +- fixed issue DYNPROXY-138 - Error message missing space +- fixed false positive where DynamicProxy would not let you proxy interface with target interface when target object was a COM object. +- fixed ReflectionBasedDictionaryAdapter when using indexed properties + +2.5.0 (2010-08-21) +================== +- DynamicProxy will now not replicate non-public attribute types +- Applied patch from Kenneth Siewers Møller which adds parameterless constructor to DefaultSmtpSender implementation, to be able to configure the inner SmtpClient from the application configuration file (system.net.smtp). +- added support for .NET 4 and Silverlight 4, updated solution to VisualStudio 2010 +- Removed obsolete overload of CreateClassProxy +- Added class proxy with taget +- Added ability to intercept explicitly implemented generic interface methods on class proxy. +- DynamicProxy does not disallow intercepting members of System.Object anymore. AllMethodsHook will still filter them out though. +- Added ability to intercept explicitly implemented interface members on class proxy. Does not support generic members. +- Merged DynamicProxy into Core binary +- fixed DYNPROXY-ISSUE-132 - "MetaProperty equals implementation incorrect" +- Fixed bug in DiagnosticsLoggerTestCase, where when running as non-admin, the teardown will throw SecurityException (contributed by maxild) +- Split IoC specific classes into Castle.Windsor project +- Merged logging services solution +- Merged DynamicProxy project + +1.2.0 (2010-01-11) +================== + +- Added IEmailSender interface and its default implementation + +1.2.0 beta (2009-12-04) +================== + +- BREAKING CHANGE - added ChangeProxyTarget method to IChangeProxyTarget interface +- added docs to IChangeProxyTarget methods +- Fixed DYNPROXY-ISSUE-108 - Obtaining replicated custom attributes on proxy may fail when property setter throws exception on default value +- Moved custom attribute replication from CustomAttributeUtil to new interface - IAttributeDisassembler +- Exposed IAttributeDisassembler via ProxyGenerationOptions, so that users can plug their implementation for some convoluted scenarios. (for Silverlight) +- Moved IInterceptorSelector from Dynamic Proxy to Core (IOC-ISSUE-156) + +1.1.0 (2009-05-04) +================== + +- Applied Eric Hauser's patch fixing CORE-ISSUE-22 + "Support for environment variables in resource URI" + +- Applied Gauthier Segay's patch fixing CORE-ISSUE-20 + "Castle.Core.Tests won't build via nant because it use TraceContext without referencing System.Web.dll" + +- Added simple interface to ComponentModel to make optional properties required. + +- Applied Mark's -- -- patch that changes + the Core to support being compiled for Silverlight 2 + +- Applied Louis DeJardin's patch adding TraceLogger as a new logger implementation + +- Applied Chris Bilson's patch fixing CORE-15 + "WebLogger Throws When Logging Outside of an HttpContext" + +Release Candidate 3 +=================== + +- Added IServiceProviderEx which extends IServiceProvider + +- Added Pair class. + +- Applied Bill Pierce's patch fixing CORE-9 + "Allow CastleComponent Attribute to Specify Lifestyle in Constructor" + +- Added UseSingleInterfaceProxy to CompomentModel to control the proxying + behavior while maintaining backward compatibility. + Added the corresponding ComponentProxyBehaviorAttribute. + +- Made NullLogger and IExtnededLogger + +- Enabled a new format on ILogger interface, with 6 overloads for each method: + Debug(string) + Debug(string, Exception) + Debug(string, params object[]) + DebugFormat(string, params object[]) + DebugFormat(Exception, string, params object[]) + DebugFormat(IFormatProvider, string, params object[]) + DebugFormat(IFormatProvider, Exception, string, params object[]) + + The "FatalError" overloads where marked as [Obsolete], replaced by "Fatal" and "FatalFormat". + +0.0.1.0 +======= + +- Included IProxyTargetAccessor + +- Removed IMethodInterceptor and IMethodInvocation, that have been replaced + by IInterceptor and IInvocation + +- Added FindByPropertyInfo to PropertySetCollection + +- Made the DependencyModel.IsOptional property writable + +- Applied Curtis Schlak's patch fixing IOC-27 + "assembly resource format only works for resources where the assemblies name and default namespace are the same." + + Quoting: + + "I chose to preserve backwards compatibility by implementing the code in the + reverse order as suggested by the reporter. Given the following URI for a resource: + + assembly://my.cool.assembly/context/moo/file.xml + + It will initially look for an embedded resource with the manifest name of + "my.cool.assembly.context.moo.file.xml" in the loaded assembly my.cool.assembly.dll. + If it does not find it, then it looks for the embedded resource with the manifest name + of "context.moo.file.xml". + +- IServiceEnabledComponent Introduced to be used across the project as + a standard way to have access to common services, for example, logger factories + +- Added missing log factories + +- Refactor StreamLogger and DiagnosticLogger to be more consistent behavior-wise + +- Refactored WebLogger to extend LevelFilteredLogger (removed duplication) + +- Refactored LoggerLevel order + +- Project started diff --git a/lib/packages/Castle.Core.3.2.0/License.txt b/lib/packages/Castle.Core.3.2.0/License.txt new file mode 100644 index 0000000..107b1fd --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/License.txt @@ -0,0 +1,14 @@ +Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.dll b/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.dll new file mode 100644 index 0000000..ccc7d5f Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.dll differ diff --git a/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.xml b/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.xml new file mode 100644 index 0000000..b20f738 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/lib/net35/Castle.Core.xml @@ -0,0 +1,4754 @@ + + + + Castle.Core + + + + + Specifies assignment by reference rather than by copying. + + + + + Suppresses any on-demand behaviors. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Removes a property if matches value. + + + + + Assigns a specific dictionary key. + + + + + Defines the contract for customizing dictionary access. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Determines relative order to apply related behaviors. + + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for value matching. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Abstract implementation of . + + + + + Conract for traversing a . + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for managing Dictionary adapter notifications. + + + + + Contract for validating Dictionary adapter. + + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Provides a generic collection that supports data binding. + + + This class wraps the CLR + in order to implement the Castle-specific . + + The type of elements in the list. + + + + Initializes a new instance of the class + using default values. + + + + + Initializes a new instance of the class + with the specified list. + + + An of items + to be contained in the . + + + + + Initializes a new instance of the class + wrapping the specified instance. + + + A + to be wrapped by the . + + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Initializes a new instance of the class + that represents a child object in a larger object graph. + + + + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Checks whether or not collection is null or empty. Assumes colleciton can be safely enumerated multiple times. + + + + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Identifies a property should be represented as a nested component. + + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + + + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + + + + + + Initializes a new instance of the class. + + The name values. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Adapts the specified name values. + + The name values. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existinginstance of the class. + + + + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + + + Copies the + + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Contract for typed dynamic value resolution. + + + + + + Contract for dynamic value resolution. + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Applied to the assemblies saved by in order to persist the cache data included in the persisted assembly. + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Generates the constructor for the class that extends + + + + + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Saves the generated assembly with the name and directory information given when this instance was created (or with + the and current directory if none was given). + + + + This method stores the generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly + have been generated, it will throw an exception; in this case, use the overload. + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + Both a strong-named and a weak-named assembly have been generated. + The path of the generated assembly file, or null if no file has been generated. + + + + Saves the specified generated assembly with the name and directory information given when this instance was created + (or with the and current directory if none was given). + + True if the generated assembly with a strong name should be saved (see ); + false if the generated assembly without a strong name should be saved (see . + + + This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + No assembly has been generated that matches the parameter. + + The path of the generated assembly file, or null if no file has been generated. + + + + Loads the generated types from the given assembly into this 's cache. + + The assembly to load types from. This assembly must have been saved via or + , or it must have the manually applied. + + This method can be used to load previously generated and persisted proxy types from disk into this scope's type cache, eg. in order + to avoid the performance hit associated with proxy generation. + + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the strongly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the weakly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + ProxyBuilder that persists the generated type. + + + The saved assembly contains just the last generated type. + + + + + Initializes a new instance of the class. + + + + + Saves the generated assembly to a physical file. Note that this renders the unusable. + + The path of the generated assembly file, or null if no assembly has been generated. + + This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the + respective methods of the . + + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + + Handles the deserialization of proxies. + + + + + Resets the used for deserialization to a new scope. + + + This is useful for test cases. + + + + + Resets the used for deserialization to a given . + + The scope to be used for deserialization. + + By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies + being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided. + + + + + Gets the used for deserialization. + + As has no way of automatically determining the scope used by the application (and the application might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy types. This instance can be reset and set to a specific value via and . + + + + Holds objects representing methods of class. + + + + + Holds objects representing methods of class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Creates a new lock. + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Creates outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Keep the instance alive in a remoting scenario + + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standart Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + Creates a logger based on . + + + + + + + Creates a logger based on . + + + + + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + + If a config value is an empty string we return null, this is to keep + backward compatibility with old code + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + 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 . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Email sender abstraction. + + + + + Sends a mail message. + + From field + To field + E-mail's subject + message's body + + + + Sends a message. + + Message instance + + + + Sends multiple messages. + + List of messages + + + + Default implementation. + + + + + Initializes a new instance of the class based on the configuration provided in the application configuration file. + + + This constructor is based on the default configuration in the application configuration file. + + + + + This service implementation + requires a host name in order to work + + The smtp server name + + + + Sends a message. + + If any of the parameters is null + From field + To field + e-mail's subject + message's body + + + + Sends a message. + + If the message is null + Message instance + + + + Configures the sender + with port information and eventual credential + informed + + Message instance + + + + Gets or sets the port used to + access the SMTP server + + + + + Gets the hostname. + + The hostname. + + + + Gets or sets a value which is used to + configure if emails are going to be sent asynchronously or not. + + + + + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + + + + + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + + true if should use SSL; otherwise, false. + + + + Gets or sets the domain. + + The domain. + + + + Gets or sets the name of the user. + + The name of the user. + + + + Gets or sets the password. + + The password. + + + + Gets a value indicating whether credentials were informed. + + + if this instance has credentials; otherwise, . + + + + diff --git a/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.dll b/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.dll new file mode 100644 index 0000000..24f4b2f Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.dll differ diff --git a/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.xml b/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.xml new file mode 100644 index 0000000..b20f738 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/lib/net40-client/Castle.Core.xml @@ -0,0 +1,4754 @@ + + + + Castle.Core + + + + + Specifies assignment by reference rather than by copying. + + + + + Suppresses any on-demand behaviors. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Removes a property if matches value. + + + + + Assigns a specific dictionary key. + + + + + Defines the contract for customizing dictionary access. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Determines relative order to apply related behaviors. + + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for value matching. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Abstract implementation of . + + + + + Conract for traversing a . + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for managing Dictionary adapter notifications. + + + + + Contract for validating Dictionary adapter. + + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Provides a generic collection that supports data binding. + + + This class wraps the CLR + in order to implement the Castle-specific . + + The type of elements in the list. + + + + Initializes a new instance of the class + using default values. + + + + + Initializes a new instance of the class + with the specified list. + + + An of items + to be contained in the . + + + + + Initializes a new instance of the class + wrapping the specified instance. + + + A + to be wrapped by the . + + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Initializes a new instance of the class + that represents a child object in a larger object graph. + + + + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Checks whether or not collection is null or empty. Assumes colleciton can be safely enumerated multiple times. + + + + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Identifies a property should be represented as a nested component. + + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + + + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + + + + + + Initializes a new instance of the class. + + The name values. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Adapts the specified name values. + + The name values. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existinginstance of the class. + + + + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + + + Copies the + + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Contract for typed dynamic value resolution. + + + + + + Contract for dynamic value resolution. + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Applied to the assemblies saved by in order to persist the cache data included in the persisted assembly. + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Generates the constructor for the class that extends + + + + + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Saves the generated assembly with the name and directory information given when this instance was created (or with + the and current directory if none was given). + + + + This method stores the generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly + have been generated, it will throw an exception; in this case, use the overload. + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + Both a strong-named and a weak-named assembly have been generated. + The path of the generated assembly file, or null if no file has been generated. + + + + Saves the specified generated assembly with the name and directory information given when this instance was created + (or with the and current directory if none was given). + + True if the generated assembly with a strong name should be saved (see ); + false if the generated assembly without a strong name should be saved (see . + + + This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + No assembly has been generated that matches the parameter. + + The path of the generated assembly file, or null if no file has been generated. + + + + Loads the generated types from the given assembly into this 's cache. + + The assembly to load types from. This assembly must have been saved via or + , or it must have the manually applied. + + This method can be used to load previously generated and persisted proxy types from disk into this scope's type cache, eg. in order + to avoid the performance hit associated with proxy generation. + + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the strongly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the weakly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + ProxyBuilder that persists the generated type. + + + The saved assembly contains just the last generated type. + + + + + Initializes a new instance of the class. + + + + + Saves the generated assembly to a physical file. Note that this renders the unusable. + + The path of the generated assembly file, or null if no assembly has been generated. + + This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the + respective methods of the . + + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + + Handles the deserialization of proxies. + + + + + Resets the used for deserialization to a new scope. + + + This is useful for test cases. + + + + + Resets the used for deserialization to a given . + + The scope to be used for deserialization. + + By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies + being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided. + + + + + Gets the used for deserialization. + + As has no way of automatically determining the scope used by the application (and the application might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy types. This instance can be reset and set to a specific value via and . + + + + Holds objects representing methods of class. + + + + + Holds objects representing methods of class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Creates a new lock. + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Creates outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Keep the instance alive in a remoting scenario + + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standart Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + Creates a logger based on . + + + + + + + Creates a logger based on . + + + + + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + + If a config value is an empty string we return null, this is to keep + backward compatibility with old code + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + 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 . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Email sender abstraction. + + + + + Sends a mail message. + + From field + To field + E-mail's subject + message's body + + + + Sends a message. + + Message instance + + + + Sends multiple messages. + + List of messages + + + + Default implementation. + + + + + Initializes a new instance of the class based on the configuration provided in the application configuration file. + + + This constructor is based on the default configuration in the application configuration file. + + + + + This service implementation + requires a host name in order to work + + The smtp server name + + + + Sends a message. + + If any of the parameters is null + From field + To field + e-mail's subject + message's body + + + + Sends a message. + + If the message is null + Message instance + + + + Configures the sender + with port information and eventual credential + informed + + Message instance + + + + Gets or sets the port used to + access the SMTP server + + + + + Gets the hostname. + + The hostname. + + + + Gets or sets a value which is used to + configure if emails are going to be sent asynchronously or not. + + + + + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + + + + + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + + true if should use SSL; otherwise, false. + + + + Gets or sets the domain. + + The domain. + + + + Gets or sets the name of the user. + + The name of the user. + + + + Gets or sets the password. + + The password. + + + + Gets a value indicating whether credentials were informed. + + + if this instance has credentials; otherwise, . + + + + diff --git a/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.dll b/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.dll new file mode 100644 index 0000000..777ca82 Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.dll differ diff --git a/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.xml b/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.xml new file mode 100644 index 0000000..b20f738 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/lib/net45/Castle.Core.xml @@ -0,0 +1,4754 @@ + + + + Castle.Core + + + + + Specifies assignment by reference rather than by copying. + + + + + Suppresses any on-demand behaviors. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Removes a property if matches value. + + + + + Assigns a specific dictionary key. + + + + + Defines the contract for customizing dictionary access. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Determines relative order to apply related behaviors. + + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for value matching. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Abstract implementation of . + + + + + Conract for traversing a . + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for managing Dictionary adapter notifications. + + + + + Contract for validating Dictionary adapter. + + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Provides a generic collection that supports data binding. + + + This class wraps the CLR + in order to implement the Castle-specific . + + The type of elements in the list. + + + + Initializes a new instance of the class + using default values. + + + + + Initializes a new instance of the class + with the specified list. + + + An of items + to be contained in the . + + + + + Initializes a new instance of the class + wrapping the specified instance. + + + A + to be wrapped by the . + + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Initializes a new instance of the class + that represents a child object in a larger object graph. + + + + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Checks whether or not collection is null or empty. Assumes colleciton can be safely enumerated multiple times. + + + + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Identifies a property should be represented as a nested component. + + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + + + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + + + + + + Initializes a new instance of the class. + + The name values. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Adapts the specified name values. + + The name values. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existinginstance of the class. + + + + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + + + Copies the + + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Contract for typed dynamic value resolution. + + + + + + Contract for dynamic value resolution. + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Applied to the assemblies saved by in order to persist the cache data included in the persisted assembly. + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Generates the constructor for the class that extends + + + + + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Saves the generated assembly with the name and directory information given when this instance was created (or with + the and current directory if none was given). + + + + This method stores the generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly + have been generated, it will throw an exception; in this case, use the overload. + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + Both a strong-named and a weak-named assembly have been generated. + The path of the generated assembly file, or null if no file has been generated. + + + + Saves the specified generated assembly with the name and directory information given when this instance was created + (or with the and current directory if none was given). + + True if the generated assembly with a strong name should be saved (see ); + false if the generated assembly without a strong name should be saved (see . + + + This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + No assembly has been generated that matches the parameter. + + The path of the generated assembly file, or null if no file has been generated. + + + + Loads the generated types from the given assembly into this 's cache. + + The assembly to load types from. This assembly must have been saved via or + , or it must have the manually applied. + + This method can be used to load previously generated and persisted proxy types from disk into this scope's type cache, eg. in order + to avoid the performance hit associated with proxy generation. + + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the strongly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the weakly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + ProxyBuilder that persists the generated type. + + + The saved assembly contains just the last generated type. + + + + + Initializes a new instance of the class. + + + + + Saves the generated assembly to a physical file. Note that this renders the unusable. + + The path of the generated assembly file, or null if no assembly has been generated. + + This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the + respective methods of the . + + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + + Handles the deserialization of proxies. + + + + + Resets the used for deserialization to a new scope. + + + This is useful for test cases. + + + + + Resets the used for deserialization to a given . + + The scope to be used for deserialization. + + By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies + being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided. + + + + + Gets the used for deserialization. + + As has no way of automatically determining the scope used by the application (and the application might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy types. This instance can be reset and set to a specific value via and . + + + + Holds objects representing methods of class. + + + + + Holds objects representing methods of class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Creates a new lock. + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Creates outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Keep the instance alive in a remoting scenario + + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standart Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + Creates a logger based on . + + + + + + + Creates a logger based on . + + + + + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + + If a config value is an empty string we return null, this is to keep + backward compatibility with old code + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + 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 . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Email sender abstraction. + + + + + Sends a mail message. + + From field + To field + E-mail's subject + message's body + + + + Sends a message. + + Message instance + + + + Sends multiple messages. + + List of messages + + + + Default implementation. + + + + + Initializes a new instance of the class based on the configuration provided in the application configuration file. + + + This constructor is based on the default configuration in the application configuration file. + + + + + This service implementation + requires a host name in order to work + + The smtp server name + + + + Sends a message. + + If any of the parameters is null + From field + To field + e-mail's subject + message's body + + + + Sends a message. + + If the message is null + Message instance + + + + Configures the sender + with port information and eventual credential + informed + + Message instance + + + + Gets or sets the port used to + access the SMTP server + + + + + Gets the hostname. + + The hostname. + + + + Gets or sets a value which is used to + configure if emails are going to be sent asynchronously or not. + + + + + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + + + + + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + + true if should use SSL; otherwise, false. + + + + Gets or sets the domain. + + The domain. + + + + Gets or sets the name of the user. + + The name of the user. + + + + Gets or sets the password. + + The password. + + + + Gets a value indicating whether credentials were informed. + + + if this instance has credentials; otherwise, . + + + + diff --git a/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.dll b/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.dll new file mode 100644 index 0000000..5d89826 Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.dll differ diff --git a/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.xml b/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.xml new file mode 100644 index 0000000..9051c06 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/lib/sl4/Castle.Core.xml @@ -0,0 +1,4223 @@ + + + + Castle.Core + + + + + Specifies assignment by reference rather than by copying. + + + + + Suppresses any on-demand behaviors. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Removes a property if matches value. + + + + + Assigns a specific dictionary key. + + + + + Defines the contract for customizing dictionary access. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Determines relative order to apply related behaviors. + + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for value matching. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Abstract implementation of . + + + + + Conract for traversing a . + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for managing Dictionary adapter notifications. + + + + + Contract for validating Dictionary adapter. + + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Checks whether or not collection is null or empty. Assumes colleciton can be safely enumerated multiple times. + + + + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Identifies a property should be represented as a nested component. + + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + + + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existinginstance of the class. + + + + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + + + Copies the + + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Contract for typed dynamic value resolution. + + + + + + Contract for dynamic value resolution. + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Generates the constructor for the class that extends + + + + + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + The silverlight System.Type is missing the IsNested property so this exposes similar functionality. + + + + + + + Holds objects representing methods of class. + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Creates a new lock. + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + 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 . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + diff --git a/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.dll b/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.dll new file mode 100644 index 0000000..e1e42a7 Binary files /dev/null and b/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.dll differ diff --git a/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.xml b/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.xml new file mode 100644 index 0000000..9051c06 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/lib/sl5/Castle.Core.xml @@ -0,0 +1,4223 @@ + + + + Castle.Core + + + + + Specifies assignment by reference rather than by copying. + + + + + Suppresses any on-demand behaviors. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Removes a property if matches value. + + + + + Assigns a specific dictionary key. + + + + + Defines the contract for customizing dictionary access. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Determines relative order to apply related behaviors. + + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for value matching. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Abstract implementation of . + + + + + Conract for traversing a . + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for managing Dictionary adapter notifications. + + + + + Contract for validating Dictionary adapter. + + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Checks whether or not collection is null or empty. Assumes colleciton can be safely enumerated multiple times. + + + + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Identifies a property should be represented as a nested component. + + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + + + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existinginstance of the class. + + + + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + + + Copies the + + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + + Gets the attribute. + + The member. + The member attribute. + + + + Contract for typed dynamic value resolution. + + + + + + Contract for dynamic value resolution. + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Generates the constructor for the class that extends + + + + + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + The silverlight System.Type is missing the IsNested property so this exposes similar functionality. + + + + + + + Holds objects representing methods of class. + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Creates a new lock. + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + 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 . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + diff --git a/lib/packages/Castle.Core.3.2.0/readme.txt b/lib/packages/Castle.Core.3.2.0/readme.txt new file mode 100644 index 0000000..b947840 --- /dev/null +++ b/lib/packages/Castle.Core.3.2.0/readme.txt @@ -0,0 +1,10 @@ +Thanks for downloading this Castle package. +You can find full list of changes in changes.txt + +Documentation (work in progress, contributions appreciated): +Dictionary Adapter - http://docs.castleproject.org/Tools.Castle-DictionaryAdapter.ashx +DynamicProxy - http://docs.castleproject.org/Tools.DynamicProxy.ashx +Discusssion group: - http://groups.google.com/group/castle-project-users +StackOverflow tags: - castle-dynamicproxy, castle-dictionaryadapter, castle + +Issue tracker: - http://issues.castleproject.org/dashboard \ No newline at end of file diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/ASL - Apache Software Foundation License.txt b/lib/packages/Castle.LoggingFacility.3.2.0/ASL - Apache Software Foundation License.txt new file mode 100644 index 0000000..e259b58 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/ASL - Apache Software Foundation License.txt @@ -0,0 +1,57 @@ +Apache License, Version 2.0 + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/BreakingChanges.txt b/lib/packages/Castle.LoggingFacility.3.2.0/BreakingChanges.txt new file mode 100644 index 0000000..07f93d0 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/BreakingChanges.txt @@ -0,0 +1,936 @@ +=== version 3.1 +================================================================================================ +change - Windsor will no longer allow components from parent container to have dependencies from + child container when resolving via child container. + Class ParentHandlerWithChildResolver was renamed to ParentHandlerWrapper + +impact - low +fixability - medium + +description - Previously in some cases, when resolving from child container Windsor would allow + component from the parent container to depend on components from a child container. + This would lead to all sorts of problems (child coomponents leaking to parent scope, parent + components being released prematurely when disposing of the child container etc. + Overall this behavior was a mess, and was removed. + See http://issues.castleproject.org/issue/IOC-345 for more details + +fix - If you were depending on the old behavior it is best to restructure your dependencies so + you don't have to have those inverted dependencies. + Since each scenario is different it's best to discuss any questions you may have on the user + group. + +================================================================================================ +change - IHandler.SupportsAssignable(Type) method has been added + +impact - low +fixability - easy + +description - This was added to better support IGenericServiceStrategy on generic handlers when + calling IKernel.GetAssignableHandlers(Type). Now the handler can decide whether it wants to + consider itself assigmable to given service. + +fix - This change affects you only if you're implementing custom IHandler. Implementation is + dependent on your usage and semantics you want to support for this scenario. When in doubt + ask on castle-users-group on Google Groups. + +================================================================================================ +change - System.String, and some other types can no longer be registered as a service + in the container + +impact - low +fixability - easy + +description - This is something that probably should never have made it into the codebase. Now + if you try to register String, a collection of strings or collection of value types Windsor + will throw an ArgumentException and not allow you to do that. + +fix - If you did register those types in the container change them from being components + to being parameters on the components that were depending on them. + +================================================================================================ +change - DependencyModel.IsValueType is renamed to DependencyModel.IsPrimitiveTypeDependency. + +impact - low +fixability - easy + +description - This is part of unification of how types that can not be registered as valid + services are found and treated in Windsor. + Also the property now returns true if TargetItemType is null. Previously it returned false. + +fix - Change usages of IsValueType to IsPrimitiveTypeDependency if you depended on behavior when + TargetItemType is null, you might also need to check its value to preserve the old behavior. + + +=== version 3.0 +================================================================================================ +change - Typed factory using DefaultTypedFactoryComponentSelector when resolving component + by name will not fallback to resolving by type if component with that name can not be found + and will throw an exception instead. + +id - typedFactoryFallbackToResolveByTypeIfNameNotFound +impact - medium +fixability - easy + +description - Original behavior from v2.5 could lead to bugs in cases when named component was + not registered or the name was misspelleed and a wrong component would be picked leading to + potentially severe issues in the application. New version adapts fail-fast approach in those + cases to give dvelopers immediate feedback the configuration is wrong. + +fix - Actual fix depends on which part of the behavior you want: + - If you do care about the fallback behavior, that is get the component by name and if + not present fallback to resolve by type, you can specify it explicitly when registering your + factory: + .AsFactory( + new DefaultTypedFactoryComponentSelector(fallbackToResolveByTypeIfNameNotFound: true)); + - if you don't care about the fallback and what you really want is a 'GetSomeFoo' method + that resolves by type, either rename the method so that its name doesn't start with 'get' + or disable the "'get' methods resolve by name" behavior explicitly when registering your + factory: + .AsFactory(new DefaultTypedFactoryComponentSelector(getMethodsResolveByName: false)) +================================================================================================ +change - Referencing interceptors by type will not work if the interceptor has custom name. + +impact - medium +fixability - easy + +description - We unified how referencing components by type works all across Windsor and that + introduced change for some areas like referencing interceptors. Now referencing component + by type means "component implemented by given type with default name". This is how it worked + for service overrides and is now adapted all across the framework. + +fix - Remove Name (id in XML registration) from the referenced components if you're not using it + or reference the component by its name. +================================================================================================ +change - .Service method on mixing registration has been removed and replaced with .Component. + +impact - low +fixability - easy + +description - The method had misleading name and behavior inconsistent with the rest of Windsor. + As such it's been replaced with .Component method which is more explicit about what argument + passed to it means + +fix - Replace with .Component method: +Container.Register(Component.For() + .ImplementedBy() + .Proxy.MixIns(m => m.Component())); + Notice the new method is behaving consistently with how referencing interceptors and service + overrides works. So you may need to adjust generic argument to point to other component's + implementation type rather than its exposed service. +================================================================================================ +change - Generic overloads of .Insert(this IDictionary dictionary, otherarguments) extension + method have been removed. + +impact - low +fixability - easy + +description - The overload could cause unexpected behavior when the generic parameter was being + inferred, and as such it is removed to make the type always explicit. + +fix - Use overload that specifies type explicitly: + d.Insert(typeof(IFoo), new MyFoo()) instead of d.Insert(new MyFoo()) or new, explicit + d.InsertTyped(new MyFoo()) +================================================================================================ +change - Method object Generate(IProxyBuilder, ProxyGenerationOptions, IInterceptor[]) on type + IProxyFactoryExtension changed signature. + + +impact - low +fixability - easy + +description - To handle new scenarios two additional arguments were introduced: + ComponentModel model and CreationContext context. + +fix - If you were implementing IProxyFactory and calling down to IProxyFactoryExtension pass your + own arguments down to IProxyFactoryExtension. If you're implementing IProxyFactoryExtension + adjust your signature and if that makes sense in your context use the arguments. +================================================================================================ +change - ProxyUtil class was split and part moved to Castle.Core.dll and other was renamed + +impact - low +fixability - easy + +description - ProxyUtil contained logic useful not just in the context of Windsor. As such + it was moved to be part of DynamicProxy and most methods are now part of the other assembly. + The only method specific to Windsor: ObtainProxyOptions was left and is now an extension + method in class ProxyOptionsUtil. + +fix - If you were using ObtainProxyOptions use it either as extension method or update its type + name to ProxyOptionsUtil. Remining methods are now part of ProxyUtil class which was moved + to Castle.DynamicProxy namespaces and lives in Castle.Core.dll +================================================================================================ +change - CreateLifestyleManager method was moved from handlers to IKernelInternal + +impact - low +fixability - easy + +description - That behavior belongs in the kernel. + +fix - You shouldn't be using this method unless you're implementing custom handlers. If you do + call back to the kernel instead of implementing it in yoru handler. +================================================================================================ +change - Removed interface Castle.Core.ILifecycleConcern + +impact - low +fixability - easy + +description - This change was made because with this base interface it was impossible to + implement Castle.Core.ICommisssionConcern and Castle.Core.IDecommissionConcers in single class + Additionaly ILifecycleConcern had no meaning, only the ICommisssionConcern and + IDecommissionConcers have + +fix - If you have code using directly ILifecycleConcern (but what for?) you need to + migrate to either ICommisssionConcern or IDecommissionConcers. For code that use + ICommisssionConcern and IDecommisssionConcern you can recompile it to be extra save, but it + is not required. +================================================================================================ +change - Removed overloads of Configure and ConfigureFor<> methods of the fluent registration + API that had ConfigureDelegate parameter + +impact - high +fixability - easy + +description - This change was made to simplify the API and remove ambiguity in cases where a + private method is used to provide the configuration. + +fix - This change breaks scenarios where a property was being used as the last element of the + chain in the nested deledate, like: + Configure(c => c.LifeStyle.Transient) + This code will no longer compile. To fix it switch to the new methods exposing lifestyle: + Configure(c => c.LifestyleTransient()) or simply:: + LifestyleTransient() +================================================================================================ +change - ITypedFactoryComponentResolver interface was removed and ITypedFactoryComponentSelector + now returns Func from SelectComponent method + +impact - low +fixability - easy + +description - This change was made to simplify coding of advanced custom selectors which means + now only one type needs to be created instead of two and change is much more localized. + +fix - If you were using DefaultTypedFactoryComponentSelector this change does not affect you. + otherwise return delegate pointing to Resolve method of your ITypedFactoryComponentResolver + class or inline it altogether. +================================================================================================ +change - Add() methods on PropertySetCollection and ConstructorCandidateCollection are no longer + publicly accessible + +impact - low +fixability - easy + +description - This change was made to ensure and encapsulate the fact that as constructor or + property dependency is added the dependency is also added to Dependencies collection on + ComponentModel. + +fix - Use new AddProperty or AddConstructor methods respectively. +================================================================================================ +rename - WithService.DefaultInterface() -> WithService.DefaultInterfaces() +description - changed to plural to emphasize more than one interface may be matched. +================================================================================================ +change - ResolveAll methods have now different bahaviour. + +impact - high +fixability - medium + +description - Previously Windsor when ResolveAll was called would try to resolve all components + with implementation type assignable to the type requirested and silently ignore those it + could not resolve. This behavior was introduced before Windsor had ability to support multi + service components and at the time it was the only way to support certain scenarios. + Currently this behavior is no longer required and is indeed leading to issues when dealing + with code that doesn't strictly follow good OOP principles. Also by silently ignoring + unresolvable components it may mask registration issues, that's why it was changed. + +fix - Now ResolveAll() will only resolve components that explicitly expose Foo as their + service. If you were depending on the implicit behavior previously, make sure you add all + types you resolve via this method as service to the desired components. + Also Windsor now will throw exception if any of the components can't be resolved. If you + have a legitimate reason to have unresolvable component use IHandlersFilter to filter that + components out. +================================================================================================ +change - The following methods were removed: + IHandler.AddCustomDependencyValue + IHandler.HasCustomParameter + IHandler.RemoveCustomDependencyValue + IHandler.OnHandlerStateChanged event + IKernelInternal.RaiseHandlerRegistered + IKernelInternal.RaiseHandlersChanged + IKernelInternal.RegisterCustomDependencies (all 4 overloads) + +impact - low +fixability - easy + +description - Those members were remainings from the old era and there's no longer any point in + having them. + +fix - Pass the dependencies directly to the ComponentModel using DependsOn method on the fluent + registration API. The OnHandlerStateChanged event would no longer be raised so there was no + point in keeping it around either. Use HandlersChanged event on kernel instead. +================================================================================================ +change - IReference.Attach and .Detach method have now ComponentModel as their parameter. + +impact - low +fixability - easy + +description - To accomodate changes in DependencyModel and ParameterModel it was required to + have access to both of them hence ComponentModel is being passed as a more generic object + exposing access to all required elements. + +fix - Pass in full ComponentModel, not just it's .Dependencies property. In the reference + use component's properties to do all you require +================================================================================================ +change - IDependencyAwareActivator has new method: bool IsManagedExternally(ComponentModel); + +impact - low +fixability - easy + +description - To implement feature IOC-277 this new customization point was introduced which + allows custom activators to specify whether the instance they activate shoud be managed + by the container. If true is returned this signifies to the container that the component + should not be tracked by the release policy. The activator should in that case also not + invoke any lifecycle steps. Notice that lifestyle manager can override the choice and that + this method will not be called in all cases. + +fix - Implement the method however makes sense to you. By default you should just return false. +================================================================================================ +change - IExposeDependencyInfo.ObtainDependencyDetails method signature has changed + +impact - low +fixability - easy + +description - To move the code for constructing the exception when dependencies are missing + out of handlers and open way for different scenarios a new interface was introduced: + IDependencyInspector and it is now used by IExposeDependencyInfo to provide the same + functionality as before. + +fix - Adjust the calls to the new signature. If you have custom handler type take a look at + how built in handlers are now implemented. +================================================================================================ +change - type attribute is now required and id is ignored in facility XML configuration + +impact - low +fixability - easy + +description - Since type is uniquely identifying facilities there was no point in keeping the id + around anymore. + +fix - This change can affect you in two ways. If you were using facilities node in the XML and + not specifying the type it is now mandatory. Notice Windsor's ability to apply short type + names works here as well, so often just type name is enough - no need to specify assembly + qualified name. Also the assembly will now be instantiated by the container, so if you were + adding it in code later on, this is no longer required (in fact it will throw an exception + saying the assembly was already added). + The other thing that may affect you is if you were looking up facility config namnually via + IConfigurationStore.GetFacilityConfiguration method. It now expects full name of the type + as the key, so you should be calling it like this: + store.GetFacilityConfiguration(typeof(YourFacility).FullName); +================================================================================================ +change - EventWiringFacility, FactorySupportFacility and RemotingFacility are extracted to their + own assemblies + +impact - low +fixability - easy + +description - These facilities are rarely used and two of them (FactorySupportFacility and + RemotingFacility) are mostly considered legacy. As such there's no point in keeping them + in Windsor's assembly, especially in Silverlight version. + +fix - Reference the new assemblies and update your references in XML if you use it. +================================================================================================ +change - Component.For(ComponentModel) overload was removed. + +impact - low +fixability - medium + +description - To simplify internal structure of fluent registration API and bring it more in + line with standard registration the overload was removed. + +fix - If you really need this overload you can create custom IRegistration that exposes this + functionality. Or better rethink why you need it in the first place. +================================================================================================ +change - Adding more than a single facility of any given type is not legal anymore + +impact - none (I hope) +fixability - easy + +description - Doing so is a bug. Why would you do it in the first place? + +fix - Stop doing it. +================================================================================================ +change - RegisterCustomDependencies methods were moved from IKernel to IKernelInternal. + +impact - low +fixability - easy + +description - Those methods are hardly ever used these days so there was no point in polluting + the public API with them + +fix - Are you really using those methods? Perhaps you should be using the fluent API? If not + just cast the kernel to IKernelInternal and you can access them. +================================================================================================ +change - IWindsorContainer.AddFacility and IKernel.AddFacility overloads that were taking + Func were removed. + +impact - low +fixability - easy + +description - Those overloads were only cluttering the API and confusing users. There was no + point in keeping them + +fix - You should not have to fix that at all. C# compiler (in version 3 or higher) should be + smart enough to pick the Action overload automatically if you're using lambda + syntax. If you aren't, please do, or adjust the call to match the Action overload +================================================================================================ +change - IComponentModelBuilder.BuildModel and ComponentModel constructor take ComponenName now + instead of string for 'name' parameter + +impact - low +fixability - easy + +description - Most of the time name given to components is automatically generated and user does + not care what it is and never interacts with it. To be able to tell apart cases when user + did set the name manually, and when it was auto-generated a new type ComponenName has been + introduced which in addition to the name value keeps track of whether the name was provided + by user or autogenerated. + +fix - Update your calls accordingly, creating the ComponentName and passing right values in. + Also in the fluent API the method NamedAutomatically was introduced for use by facilities + and such to register their own components with some name that the user will not care about. +================================================================================================ +change - IConfigurationInterpreter.ProcessResource now takes an additional argument: IKernel + +impact - low +fixability - easy + +description - To accomodate ability not to specify id when configuring components or facilities + in XML config in conjunction with simple type name support in Windsor (this feature that + lets you specify just simple type name like Foo, instead of assembly qualified name like + Acme.Crm.Foo, Acme.Crm) access to conversion subsystem was required and it made sense to + grab entire kernel as some other things could be taken advantage of. + +fix - Pass the kernel in. +================================================================================================ +change - Release policies have now slightly different semantics. + +impact - medium +fixability - medium + +description - To limit unnecessary tracking of components, which unnecessarily consumes memory + and causes contention in multithreaded scenarios the following change was made to release + policy semantics: + - only objects whose decommission is managed by the policy (ie which are released by call to + policy.Release, or indirectly: container.Release) can now be Tracked. This is determined by + the 'RequiresPolicyRelease' flag on Burden. If the flag is not set the policy can throw. + +fix - The change is likely to affect code using custom lifetime managers. It is now up to the + manager to decide if it will release the object itself (then it should pass 'true' to + 'public Burden CreateBurden(bool trackedExternally)' method on CreationContext). Tracking + happens also for objects that require it ('RequiresDecommission' on burden is 'true'). + If lifestyle manager wants to make sure the object will be tracked it can set this flag. + Otherwise it is up to Windsor to decide if it needs to track the object or not. + Another side-effect of the change is that calling 'container.Kernel.ReleasePolicy.HasTrack' + may now return 'false', when it previously would return 'true', if the object does not meet + the criteria mentioned above. If you were using this method, make sure you review your code + that depends on it, and adjust it to the new requirements. The semantics of 'HasTrack' is + 'does the release policy track this object', not 'does anything in the container track it' + anymore. +================================================================================================ +change - IReleasePolicy interface has a new method: IReleasePolicy CreateSubPolicy(); usage of + sub-policies changes how typed factories handle out-of-band-release of components (see + description) + +impact - medium +fixability - easy + +description - This was added as an attempt to enable more fine grained lifetime scoping (mostly + for per-typed-factory right now, but in the future also say - per-window in client app). + As a side-effect of that (and change to release policy behavior described above) it is no + longer possible to release objects resolved via typed factories, using container.Release. + As the objects are now tracked only in the scope of the factory they will be released only + if a call to factory releasing method is made, or when the factory itself is released. + +fix - Method should return new object that exposes the same behavior as the 'parent' usually it + is just best to return object of the same type (as the built-in release policies do). +================================================================================================ +change - IHandler.Release now takes Burden, not object as its parameter. Burden.Release now has + no arguments (used to take IReleasePolicy) + +impact - low +fixability - easy + +description - The method used to take component instance to release. Now it takes Burden which + has some additional information and behavior. Also to decouple Burden from IReleasePolicy + it now uses callback (via Released event) as notification mechanism. + +fix - Adjust calls appropriately +//TODO: expand this with better description once the rest of the changes is in place. +================================================================================================ +change - AllComponentsReleasePolicy was removed, ILifestyleManager.Resolve has different + signature now, and additional responsibilities. + +impact - medium +fixability - medium + +description - Handling of decision regarding tracking is now happening in two steps. First step + happens in the lifestyle manager, which gets to decide if the instance should be tracked + at all (which should be chosen when a new instance is created) and if IReleasePolicy should + own (trigger) the release process. + +fix - If you implement custom lifestyle consult the implementation of standard lifestyles for + examples how to handle each aspect of component lifestyle management. Broadly speaking the + behavior should be the following (*do* inherit from AbstractLifestyleManager for your own + convenience): + - if your lifestyle employs caching, it should cache Burdens, not the objects resolved + directly. Look up its cache, and if you find matching burden return object it manages + (accessed via 'Instance' property) + - on cache miss call base.CreateInstance to obtain new instnace from activator. This method + will not return the managed object directly but rather a Burden instance. The 2nd argument + 'trackedExternally' should be set to true if the lifestyle manager uses some external mecha- + nism to track end of life for components. If not, (when set to true) releasePolicy will take + the responsibility. + - inspect burden's RequiresDecommission property. If its value is true that means either + the intsance obtained or at least one of its dependencies can not be released out of band + and will require to be released explicitly. If the property is set to true you are required + to track the componetn obtained with releasePolicy provided (you can use base.Track method + to acheave that). If the property is false, release policy will ignore the component when + container's Release method is called, and rely on your out of band handling). + - cache your newly obtained instance if needed. + - return the intance, (burden.Instance) +================================================================================================ +rename - CreationContext.Empty -> CreationContext.CreateEmpty() +description - readability change to make it obvious that new instance is created each time. +================================================================================================ +change - IServiceProviderEx was removed as base interface for IWindsorContainer and IKernel + +impact - low +fixability - easy + +description - To make the interface for the container more compact the functionality was + extracted to external class - WindsorServiceProvider. + +fix - Use WindsorServiceProvider instead. +================================================================================================ +rename - INamingSubSystem.GetHandlers -> INamingSubSystem.GetAllHandlers +description - readability change. No affect on behavior +================================================================================================ +change - Removed the following methods: + GraphNode.RemoveDepender, + GraphNode.RemoveDependent, + IKernel.RemoveComponent, + IKernelEvents.ComponentUnregistered, + INamingSubSystem.this[Type service], + INamingSubSystem.GetHandler, + INamingSubSystem.GetService2Handler, + INamingSubSystem.GetKey2Handler, + INamingSubSystem.UnRegister(String key), + INamingSubSystem.UnRegister(Type service) +Also INamingSubSystem.Register now takes only IHandler as its argument + +impact - low +fixability - none + +description - The methods were implementation of "remove component from the container" feature + which was flawed and problematic, hecen was scraped. + +fix - Working around is quite dependant on your specific usage. Try utilizing IHandlerSelectors. + For changed Register method, just update your calling code not to pass the name. + handler.ComponentModel.Name is now used as the key, as it was happening in all places so far + anyway, so this change should have no real impact. +================================================================================================ +change - Removed the following types: ContainerAdapter, ContainerWrapper, IContainerAdapter, + IContainerAdapterSite + +impact - low +fixability - none + +description - These types require ability to remove components from a container. This ability + was removed and since these types are hardly ever used, they were removed as well. + +fix - No quick fix is possible. If you are depending on this functionality proaly your best shot + is to replicate it, espeicially catering for the removal of components which is no longer + available in Windsor. +================================================================================================ +change - Removed ComponentRegistration.If and ComponentRegistration.Until methods, as well as + Component.ServiceAlreadyRegistered method, and replaced their most common usage with + ComponentRegistration.OnlyNewServices method + +impact - medium +fixability - easy/hard + +description - To make the API simpler easier to discover as well as to allow changes in internal + architecture, the aforementioned changes were made. + +fix - Most of the time the removed methods were used in the following combination: + Component.For().Unless(Component.ServiceAlreadyRegistered) + In this case the fix is simple. Just replace the .Unless(Component.ServiceAlreadyRegistered) + with .OnlyNewServices() + If you were using the method in some other way, the fix may be more complicated and depend + on your particular scenario. In those cases it's best to consult Castle users group for + advice on how to proceed. +================================================================================================ +change - Rebuilt how components exposing multiple services are handled internally. This includes + several changes to the API: + ForwardingHandler class and IHandlerFactory.CreateForwarding method were removed. + ComponentModel.Service property was removed replaced with ClassService and InterfaceServices + properties. Also AddService method was added. Constructor's argument for service was changed + to be Type[] instead of single Type. + IHandler.Service property was removed, replaced by Services property. + IComponentModelBuilder.BuildModel method takes now ICollection isntead of single Type + as services. + ComponentRegistration.For(Type serviceType, params Type[] forwaredTypes) method was removed. + ComponentFilter delegate type was removed as no longer needed + +impact - low +fixability - easy + +description - As part of improvement to internal architecture changed how components exposing + more than one service are handled. + +fix - This change should not affect most users, unless extending internals of the container. If + that's the case, adjust your calls to the new signatures, and change code anticipating + ForwardedHandlers to use Services collection from the solve IHnadler for any given component +================================================================================================ +change - Proxies no longer implicitly implement all interfaces of component implementation type. + +impact - medium +fixability - medium + +description - This original behavior was actually a bug and would produce unpredictible behavior + for components exposing several services including their class. + +fix - if you were depending on the additional non-service intrfaces being forwarded to the proxy + specify them explicitly as addtional interfaces to proxy: + container.Register(Component.For() + .Named("a"), + Component.For() + .ImplementedBy() + .Interceptors("a") + .Proxy.AdditionalInterfaces(typeof(ICommon2)) + .LifeStyle.Transient); +================================================================================================ +change - NamingPartsSubSystem, KeySearchNamingSubSystem, ComponentName, BinaryTreeComponentName + and TreeNode types were removed. + +impact - medium +fixability - medium + +description - As part of internal cleanup these esoteric, alternative implementations of naming + subsystem were removed. + +fix - behavior of these implementations of naming subsystem can be easily emulated with default + naming subsystem and custom IHandlerSelectors, which is the recommended way to go. +================================================================================================ +change - UseSingleInterfaceProxy option was removed + +impact - low +fixability - easy + +description - As part of clean up of the obsolete API the option was removed to enable certain + internal changes for the release. + +fix - if you were using this option and you have to use it, use a IProxyGenerationHook impl + and choose to only proxy members of that single interface. + + +================================================================================================ +release 2.5.2 ================================================================================== +================================================================================================ +change - One of CreationContext constructors has now additional argument; parent CreationContext + Method public IDisposable ParentResolutionContext(...) on CreationContext was removed + Method protected CreationContext CreateCreationContext(...) has now additional argument; + parent CreationContext + +impact - low +fixability - medium + +description - To fix issue with false positive cycle detection (see issue IOC-238) changes had + to be made to how parent creation context gets propagated in certain situation (when call + to kernel.Resolve/ResolveAll is performed as part of resolution process, for example when + CollectionResolver is being used). + +fix - If you override CreateCreationContext method on DefaultKernel pass the additional argument + as new constructor parameter to CreationContext. + If you were using ParentResolutionContext method it should be fairly safe to remove the call + if it was preceded by call to updated CreationContext constructor and the CreationContext is + not used outside of local scope. In other cases it's best to consult Castle users group for + advice on how to proceed. +================================================================================================ +change - IReference<> interface has two new methods + +impact - low +fixability - easy +revision - + +description - To make it possible to statically analyze dynamic dependencies provided by + the IReference interface two new methods were added: + void Attach(DependencyModelCollection dependencies); + void Detach(DependencyModelCollection dependencies); + +fix - if you're providing dependencies on a component from the container call Attach so that + reference gets a chance to create and add DependencyModel for that dependency so that + it can be statically analyzed by the container. +================================================================================================ +change - Method IDependencyResolver.Initialize change signature + +impact - low +fixability - easy +revision - + +description - To make it possible to use custom DependencyResolver inheriting from + DefaultDependencyResolver initialization of DefaultDependencyResolver was moved out of its + constructor and to IDependencyResolver.Initialize method which now takes IKernel as its + additional parameter + +fix - if you're implementing the interface adjust signature of the overriding method to + public void Initialize(IKernel kernel, DependencyDelegate dependencyDelegate) + The method is called by the kernel at the end of its constructor. +================================================================================================ +change - Changed visibility of members on AbstractFacility to protected and implementation of + interface members to explicit. + +impact - low +fixability - easy +revision - + +description - To make it less confusing to users when fluently configuring facilities (via + AddFacility(f => f.ConfigureSomething()) method) visibility of certain members + of AbstractFacility class was changed. Public properties FacilityConfig and Kernel are now + protected, and all methods from IFacility interface are implemented explicitly. Additionally + protected Dispose method was introduced to allow inheriting classes to still be disposed. + +fix - If you were using FacilityConfig and/or Kernel properties outside of inherited classes + refactor your code accordingly not to do so. If you were overriding Dispose method change + its signature from + public override void Dispose() to + protected override void Dispose() +================================================================================================ +release 2.5.1 ================================================================================== +================================================================================================ +change - ILazyComponentLoader.Load now accepts a third argument for additional arguments. + +impact - medium +fixability - easy +revision - + +description - To allow maximum flexibility and usage with Resolve, any additional arguments + are now passed to the lazy loader. +================================================================================================ +change - LifecycleStepCollection class was removed. Instaed LifecycleConcernsCollection class + was introduced. ILifecycleConcern has now two innerited interfaces for commission and + decommission. LifecycleSteps property of ComponentModel was renamed to Lifecycle. + LifecycleStepType type was removed. + +impact - medium +fixability - easy +revision - + +description - To improve strongly typed nature and decrease probability of mistake and improve + general usability of the type LifecycleStepCollection was removed. In it place similar type + was introduced - LifecycleConcernsCollection. Instead of using untyped Objects and enums + it works with two new interfaces : ICommissionConcern and IDecommissionConcern. + +fix - have your lifecycle steps implement one of the new lifecycle interfaces. Use appropriate + overload of Add/AddFirst to add them. +================================================================================================ +change - Typed Factories will not implicitly pick default ITypedFactoryComponentSelector + registered in the container anymore + +impact - low +fixability - easy +revision - + +description - In version 2.1 where ITypedFactoryComponentSelectors were introduced, when you had + a selector registered in the container that selector would be implicitly picked for every + factory you had. Since the behavior of a selector tends to be fine grained and targetet for + a specific factories, this behavior was removed. You have to explicitly associate the selector + with a factory (using .AsFactory(f => f.SelectUsing("MySelector")); or via xml configuration) + to override selection behavior. + +fix - using either fluent API .AsFactory(f => f.SelectUsing("MySelector")), or XML configuration + selector="${MySelector}" specify the selector explicitly for each of your factories. +================================================================================================ +change - ServiceSelector delegate (used in WithService.Select calls) changed signature + +impact - low +fixability - easy +revision - + +description - To fix a bug which would occur if type implemented multiple closed version of base + open generic interface the signature of the delegate was changed from + public delegate IEnumerable ServiceSelector(Type type, Type baseType); + to + public delegate IEnumerable ServiceSelector(Type type, Type[] baseTypes); + so that multiple base types are possible (they would be closed versions of the same open + generic interface) + +fix - depending on the scenario. You would either ignore it, or wrap your current method's body + in foreach(var baseType in baseTypes) +================================================================================================ +change - moved IWindsorInstaller to Castle.MicroKernel.Registration namespace + +impact - very low +fixability - easy +revision - + +description -In order to improve developer experience when writing installers the interface + was moved so that Component and AllTypes entry types for registration are already in scope. + +fix - add using Castle.MicroKernel.Registration directive. +================================================================================================ +change - Added two new overloads to ITypeConverter.PerformConversion + +impact - very low +fixability - easy +revision - + +description - To reduce casting in the most common scenario where converted value is casted to + the type it's been converted to, ITypeConverter.PerformConversion has now generic overloads + for handling this case. + +fix - If you're implementing ITypeConverter via AbstractTypeConverter you don't have to do + anything as the base class will handle the conversion for you. Otherwise implement it like + in AbstractTypeConverter. + +================================================================================================ +change - AddCustomComponent method were moved from IKernel to IKernelInternal interface + +impact - very low +fixability - easy +revision - + +description - This method constitute internally used contract of kernel and is not intended + for external usage. As such it was moved to internal interface to declutter public + interface of IKernel. + +fix - You should not have been using this method so it should not affect you in any way. If + you did, cast the IKernel to IKernelInternal to invoke the method. + +================================================================================================ +change - IModelInterceptorsSelector.SelectInterceptors method changed its signature and how it + is used. + +impact - medium +fixability - medium +revision - + +description - To accomodate additional scenarios that were impossible (or hard to achieve + with previous design the method now has additional parameter, an array of references to + interceptors, which contains either default interceptors for the component, or interceptors + selected by previous interceptors in line). Also, Windsor will now never call + IModelInterceptorsSelector.SelectInterceptors without calling + IModelInterceptorsSelector.HasInterceptors before it, or when the latter returns false. + +fix - When adjusting your implementation remember that model's interceptors are the default value + passed as methods second parameter, so you don't need to merge them again manually (otherwise + they'll be invoked twice). + +================================================================================================ +change - CreateComponentActivator, RaiseHandlerRegistered, RaiseHandlersChanged and + RegisterHandlerForwarding methods were moved from IKernel to IKernelInternal interface + +impact - very low +fixability - easy +revision - + +description - These methods constitute internally used contract of kernel and are not intended + for external usage. As such they were moved to internal interface to declutter public + interface of IKernel. + +fix - You should not have been using these methods so it should not affect you in any way. If + you did, cast the IKernel to IKernelInternal to invoke the methods. + +================================================================================================ +change - IProxyHook interface was removed + +impact - very low +fixability - easy +revision - + +description - Since MicroKernel was merged with Windsor and now depends on DynamicProxy directly + there's no need to provide additional abstraction on top of IProxyGenerationHook. + +fix - Make types that were implementing IProxyHook to implement IProxyGenerationHook. Change all + usages of IProxyHook to IProxyGenerationHook. + +================================================================================================ +change - AddInstallerConfiguration and GetComponents methods were added to IConfigurationStore. + +impact - very low +fixability - easy +revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0 + +description - To enable installers to be exposed via configuration the interface has been + extended by addition of the two methods. + +fix - Implement the methods accordingly to your situation. + +================================================================================================ +change - Multiple types were moved between namespaces + +impact - low +fixability - trivial +revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0 + +description - To improve the internal structure several types were moved to other namespaces. + +fix - When compilation error occurs adjust namespace imports as suggested by Visual Studio + +================================================================================================ +change - Assembly Castle.MicroKernel.dll was merged into Castle.Windsor.dll + +impact - high +fixability - easy +revision - 730b202b0ed23a6b42258a6ffd6a3e63f89501fc + +description - Since vast majority of users used Windsor, as opposed to bare MicroKernel it was + decided it didn't make sense to maintain two containers. As result of that their assemblies + were merged, as first step of integration between Windsor and MicroKernel. + +fix - In your projects remove reference to Castle.MicroKernel.dll. If you weren't using Windsor + add reference to Castle.Windsor.dll + In all places where your were referencing types from Castle.MicroKernel.dll via string + (like xml configuration when registering facilities, or section on your + web.config) update references from Castle.MicroKernel to Castle.Windsor. + +================================================================================================ +change - ComponentRegistration.Startable public method has been removed. + ComponentRegistration.StartUsingMethod public method was moved to extension method. + ComponentRegistration.StopUsingMethod public method was moved to extension method. + +impact - low +fixability - trivial +revision - 6710 + +description - StartUsingMethod/StopUsingMethod belong to StartableFacility and do not make sense + as part of generic API. Startable method was superfluous. + +fix - Remove calls to Startable(). Import namespace Castle.Facilities.Startable to use + StartUsingMethod and StopUsingMethod as extension methods. + +================================================================================================ +change - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method and + DefaultProxyFactory.CustomizeProxy protected virtual method have changed signature + +impact - very low +fixability - easy +revision - 6691 + +description - the methods now also takes IKernel and CreationContext, to be used by IReferences + to do resolution of components they reference + +fix - pass required parameters to the methods. + +================================================================================================ +change - ProxyOption's properties changed types: + Selector, from IInterceptorSelector to IReference + Hook from IProxyHook to IReference + MixIns from object[] to IEnumerable> + +impact - very low +fixability - easy +revision - 6691 + +description - the properties now use IReferences instead of live objects to allow for + resolution of their values from the container, as required in case of usage from xml. + +fix - wherever used, adjust types appropriately. To obtain actual objects, use Resolve method. diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nupkg b/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nupkg new file mode 100644 index 0000000..5a1479f Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nupkg differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nuspec b/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nuspec new file mode 100644 index 0000000..d178e3f --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/Castle.LoggingFacility.3.2.0.nuspec @@ -0,0 +1,21 @@ + + + + Castle.LoggingFacility + 3.2.0 + Castle Windsor logging facility + Castle Project Contributors + Castle Project Contributors + http://www.apache.org/licenses/LICENSE-2.0.html + http://docs.castleproject.org/Windsor.MainPage.ashx + http://docs.castleproject.org/GetFile.aspx?File=/windsorLogo100px.png + false + Castle Windsor logging facility lets you easily inject loggers into your components. It offers integration with most popular 3rd party logging frameworks like NLog and log4net (available as separate packages: Castle.Windsor-nlog and Castle.Windsor-log4net). + Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + castle, windsor, inversionOfControl, DependencyInjection, logging, log4net, nlog + + + + + + \ No newline at end of file diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/Changes.txt b/lib/packages/Castle.LoggingFacility.3.2.0/Changes.txt new file mode 100644 index 0000000..6a3c2a6 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/Changes.txt @@ -0,0 +1,956 @@ +3.2.0 (2013-02-16) +================== +- implemented IOC-375 - List duplicate registrations that are registered through convention +- implemented IOC-366 - support scoped lifestyle in XML config +- implemented IOC-365 - Provide convenience methods in the registration API to bind to nearest subgraph (in addition to existing - widest) +- implemented IOC-362 - New container diagnostic - duplicated dependencies +- implemented IOC-360 - Ability to register types based on one or several of multiple bases +- implemented IOC-358 - add ability to specify dependency on an embedded resource +- implemented IOC-357 - Provide some internal logging in Windsor to be able to see non-critical errors +- implemented IOC-355 - Add a mechanism to mark constructors as unselectable for injection, much like DoNotWireAttribute is for property injection +- implemented IOC-353 - Add Classes.FromAssemblyInThisApplication() for parity with FromAssembly class +- implemented IOC-348 - Explict sort order for convention-based configuration would be nice + +- fixed FACILITIES-160 - Wcf Facility doesn't support multiple IErrorHandlers +- fixed IOC-374 - Container.Register causing NotSupportedException in ASP .NET MVC 4. +- fixed IOC-373 - Open Generics won't resolve with LateBoundComponent Implementation +- fixed IOC-372 - Performance Counters not updated on releasing a typed factory +- fixed IOC-371 - AssemblyFilter cannot find assemblies on case-sensitive filesystems +- fixed IOC-370 - Deadlock +- fixed IOC-369 - Probably bug with generic interceptors +- fixed IOC-364 - It is impossible to use bound lifestyle with chain of components binding to innermost one +- fixed IOC-359 - Property filtering API is confusing and buggy +- fixed IOC-356 - Specifying a hook should be enough to create an implementation-less proxy +- fixed IOC-354 - Deadlock in pooled lifestyle under heavy load +- fixed IOC-334 - FacilityConfig is null in facility Init() +- fixed IOC-300 - OnCreate does not work for generic components + +3.1.0 (2012-08-05) +================== +- fixed IOC-347 - WithServiceAllInterfaces throws exception (regression) + +3.1.0 RC (2012-07-08) +================== +- Refined WCF Discovery Load Balancing approach +- Added WCF behavior to specify an IDataContractSurrogate +- Import Bindings instead of endpoints for WCF Discovery +- Improved concurrency during WCF channel failover +- Refactored WCF proxying to support all channels (not just ones based on RealProxy) +- Added additional WCF Discovery support for managed Discovery Proxies +- Exposes notifications when channels are refreshed +- Added exponential backoff client policy for WCF Facility + +- implemented IOC-343 - Add ability to specify fallback components that should never take precedence over non-fallback ones +- implemented IOC-339 - Add extension point to decide whether open generic component wants to support particular closed version +- implemented FACILITIES-159 - Add option to skip configuring log4net/nlog in LoggingFacility + +- fixed IOC-345 - When using child containers, parent components are released with child container in certain cases +- fixed IOC-342 - Should error when trying to use PerWebRequest lifestyle when linked against the client profile +- fixed IOC-341 - IHandlerFilter returning empty array ignored +- fixed IOC-338 - SerializationException thrown when using remoting within default lifetime scope (Failed to load expression host assembly. Details: Type '[...]CallContextLifetimeScope[...]' is not marked as serializable.) +- fixed IOC-336 - Failing resolution of proxied components implementing multiple generic service interfaces +- fixed IOC-332 - UsingFactoryMethod resolving a proxy without a target throws NullReferenceException instead of a better exception +- fixed IOC-331 - TypedFactoryFacility should ignore Func +- fixed IOC-328 - Hard-to-understand comment +- fixed IOC-326 - Component is Disposed before the OnDestroy delegate is invoked +- fixed IOC-325 - ParentHandlerWithChildResolver.TryResolve throws exception +- fixed IOC-241 - .NET 4 security transparency and APTCA +- fixed FACILITIES-155 - PerWcfSession throws NullReferenceException when not in a session + +3.0.0 (2011-12-13) +================== +no major changes + +3.0.0 RC 1 (2011-11-20) +================== +- implemented IOC-318 - Provide more high level API for fitering (and ignoring/requiring) properties at registration time +- implemented IOC-317 - Add ability to reference AppSettings values in XML using #{property} syntax +- implemented IOC-316 - Add attribute to specify default selector for a typed factory interface/delegate +- implemented IOC-313 - Add event to be raised by the container whenever empty collection is being resolved +- implemented IOC-312 - Add shortcut methods to API to register types from given namespace + +- fixed IOC-320 - System.ArgumentNullException at Castle.MicroKernel.Burden.Release(IReleasePolicy policy) +- fixed IOC-319 - Concurrency problem when child container is used +- fixed IOC-315 - ResolveAll should not ignore generic constraint violations on dependencies of resolved component +- fixed IOC-314 - Parsing container configuration uses the current culture +- fixed IOC-311 - OptimizeDependencyResolutionDisposable eats exceptions thrown during installation +- fixed IOC-310 - Add ability to disable performance counters + +3.0.0 beta 1 (2011-08-14) +================== +- implemented IOC-306 - Add ability to provide fine-grained filtering of properties +- implemented IOC-303 - Support proxying for components registered using factory method +- implemented IOC-302 - Support open generic components where implementation has more generic parameters than service if they can be figured out based on generic constraints +- implemented IOC-301 - Add ConfigureIf method to be used with custom predicate when configuring components registered via convention +- implemented IOC-298 - Add a method to FromAssembly that will scan all assemblies in the application for installers +- implemented IOC-292 - Add fluent registration entry point that passes through truly "all types" that is interfaces, or abstract classes can be registered too +- implemented IOC-291 - Add alias class to AllTypes that is better named, like 'Classes' +- implemented IOC-287 - Add overloads to OnCreate and OnDestroy that only take the instance and leave the container out as it is often superfluous +- implemented IOC-285 - Add abilitty to make a component the default for a service without ensuring it's the first component exposed that service registered +- implemented IOC-284 - Optimize fluent registration API for less typing +- implemented IOC-283 - Ability to create custom lifestyle attribute with custom LifestyleManager +- implemented IOC-281 - Provide out of the box support for Lazy +- implemented IOC-279 - WindsorContainer constructor taking string should accept not only file path but also other supported locations, like UNC, config section and embedded resource +- implemented IOC-277 - Add ability for components activated in a custom way to opt out of container lifetime management +- implemented IOC-275 - Exception message thrown when dependencies are missing is not always very clear and should be improved +- implemented IOC-271 - Support open generic components where implementing class has more generic parameters than the service but the missing ones can be somehow inferred +- implemented IOC-270 - Add OnDestroy method, symertical to OnCreate +- implemented IOC-269 - Windsor Performance Counters +- implemented IOC-268 - Hook that allows for filtering handlers during ResolveAll +- implemented IOC-263 - Add new debugger diagnostics - tracked objects +- implemented IOC-257 - Same as in code, specifying type for facility in XML should be enough - Id should be optional +- implemented IOC-256 - Same as in code, specifying type for component in XML should be enough - Id should be optional +- implemented IOC-255 - Specifying custom lifestyle type in XML should be enough, for it to be picked up +- implemented IOC-249 - Remove aility to remove components from the Container +- implemented IOC-246 - Remove alternative naming subsystems +- implemented IOC-243 - Remove obsolete UseSingleInterfaceProxy option + +- fixed IOC-305 - GenericListConverter throwing NotImplementedException +- fixed IOC-299 - ResolveAll ignores services for open version of generic service requested +- fixed IOC-297 - Container should throw an exception if a "primitive type" is registered as a service, since it will not be resolved +- fixed IOC-295 - registration via XML ignores service specofied in attribute +- fixed IOC-286 - Custom logger config in XML is broken +- fixed IOC-282 - Windsor should be able to register generic typed factories as open generics +- fixed IOC-280 - ResolveAll should respect services and fail hard when a component can't be resolved +- fixed IOC-278 - Optional Dependencies should also be satisfied from ILazyComponentLoaders if possible +- fixed IOC-273 - Auto register PerWebRequestLifestyleModule using PreApplicationStartMethodAttribute at runtime +- fixed IOC-267 - Register() on a System.ValueType (like an Int32 or an Enum) instance should throw an exception +- fixed IOC-265 - In certain cases of cyclic dependencies debugger view times out because of stack overflow in MismatchedLifestyleDependencyViewBuilder +- fixed IOC-262 - objects created via UsingFactoryMethod are always tracked, even if they could safely not be +- fixed IOC-260 - Generic Typed Factories no longer working in trunk +- fixed IOC-254 - Optional non-primitive .ctor parameters don't work +- fixed IOC-250 - Dispose not being called on open generic registrations +- fixed IOC-248 - Open generic components with multiple services, some of which are generic fail to properly instantiate in certain cases +- fixed IOC-247 - Make ComponentModel/IHandler expose all services for given component, instead of piggybacking them via ForwardedHandlers +- fixed IOC-245 - Proxies (for interface services) should not implicitly proxy all interfaces that the service implementation type happens to implement +- fixed IOC-240 - Castle Windsor ArrayResolver ServiceOverrides Not Respected + +- fixed FACILITIES-153 - Issue with setting the inital log level for the ConsoleLogger + +- EventWiringFacility, FactorySupportFacility and RemotingFacility are extracted to their own assemblies +- fixed bug with NullReferenceException when TypedFactoryFacility is used and disposed +- IServiceProviderEx was removed as base interface for IWindsorContainer and IKernel +- Removed the following types: ContainerAdapter, ContainerWrapper, IContainerAdapter, IContainerAdapterSite + +2.5.3 (2011-02-02) +================== +- fixed IOC-266 - Dependency of a generic service is not disposed in Windsor 2.5.x +- fixed IOC-261 - Disposing of typed-factory can throw argument null exception +- fixed IOC-254 - Optional non-primitive .ctor parameters don't work +- fixed IOC-250 - Dispose not being called on open generic registrations + +2.5.2 (2010-11-15) +================== +- implemented IOC-243 - Unseal the InterceptorAttribute class +- fixed IOC-239 - ArrayResolver attempts to instantiate an unresolvable array dependency +- fixed IOC-238 - Resolving Composite depending on a Decorator may fire up cycle detection fuse +- fixed IOC-237 - Castle Windsor : Possible bug with Startable Facility and "decorator pattern" dependencies +- fixed IOC-236 - Typed Factory Facility causes memory leak because it keeps a reference after releasing object in list 'trackedComponents' +- fixed IOC-235 - TypedFactoryFacility with inherited interfaces throws an exception +- fixed IOC-234 - StackOverflow causing inability to use debugger view when there are components with dependency cycles in the container +- fixed IOC-232 - Exception when using delegate based factories can throw when registered implicitly and used as dependencies of generic component +- fixed IOC-231 - Boilerplate methods on facilities should be hidden from IntelliSense when configuring a facility +- fixed IOC-230 - Missing Mixins/InterceptorSelectors/ProxyGenerationHooks and TypedFactoryFacility's component selectors are not detected until resolution time +- fixed IOC-229 - Qurerying for subsystem is case sensitive +- implemented IOC-228 - Chicken and egg problem when trying to inherit from DefaultDependencyResolver +- fixed IOC-227 - ResolveAll fails for generic forwarded registrations +- fixed IOC-224 - Obsolete message on some members of old obsolete API don't compile +- fixed IOC-223 - Fluent registration registers components with System.Object service when no BasedOn discriminator is provided + +2.5.1 (2010-09-21) +================== +- added "Potential lifestyle mismatches" debugger view item, that will detect and list situations where Singleton depends on Transient or PerWebRequest component (which is usually a bug) +- fixed issue where forwarding main type would create additional, superfluous handler +- WebLogger/WebLoggerFactory was removed from Castle.Core so all references to that are removed from Windsor as well +- obseleted UseSingleProxyInterface in preference over IProxyGenerationHook +- fixed IOC-220 Composite pattern with CollectionResolver should be properly supported without throwing "cycle detected" exception +- fixed IOC-218 Enable methods that take arguments as anonymous objects in Silverlight version. This works in SL, but requires [assembly: InternalsVisibleTo(Castle.Core.Internal.InternalsVisible.ToCastleCore)] +- fixed IOC-217 Enable ISupportInitialize support as lifecyclecle concern in Silverlight 4 +- implemented IOC-216 Make it possible to specify service overrides in DependsOn, either via Property, or ServiceOverride entry class +- implemented IOC-215 Hide obsolete members from IntelliSense (in basic view. By default in VB they won't be showed, but will in C# :( ) +- fixed IOC-214 Missing bracket in obsolete warning text +- implemented IOC-212 Add ability to make IProxyGenerationHooks and IInterceptoSelectors IOnBehalfAware +- fixed IOC-211 Resolve doesn't work with constructor's ref argument +- fixed IOC-210 Typed Factory Facility treats constructor dependency as non-optional if resolved as a TFF component +- fixed IOC-209 Bug in constructor selection when resolving - Windsor would pick unresolvable constructor +- reverted back (to the way it was in v2.1) conditional registration of helper components used by TypedFactoryFacility as it would cause issues when used with nested containers (see the new test and thread "Typed Factories in sub Container (differences between 2.5 and 2.1)" on users group) +- added framework information the assembly was built for to the AssemblyTitle attribute +- improved how late bound types are displayed in debugger +- fixed bug where count of potentially misconfigured components would show invalid value +- added raw handler access to default component view in debugger +- changed how status message is displayed for potentially misconfigured components so that an actual visualizer for strings can be used to view this potentially long piece of text + +2.5.0 (2010-08-21) +================== +- debugger view support has been extracted to a separate subsystem (IContainerDebuggerExtensionHost) and can be extended by users code via IContainerDebuggerExtension and IComponentDebuggerExtension +- calling IHandler.TryStart will no longer silently ignore all the exceptions. +- added CollectionResolver which is a more general version of ArrayResolver and ListResolver and supports in addition ICollection and IEnumerable +- fixed issue where dependencies would not be cleaned up when component creation failed +- fixed issue where startable component would be created twice when property dependency could not be resolved +- passing arguments to ILazyComponentLoader (see breakingchanges.txt) +- fixed bug that caused exception when proxied component and it's proxied property dependency shared interceptor + +2.5.0 beta2 (2010-07-21) +================== +- added support for selecting components based on custom attributes and their properties. See Component.HasAttribute() methods +- added WithService.DefaultInterface() to fluent API.IT matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc +- added support for CastleComponentAttribute in fluent Api. Also added helper filter method Component.IsCastleComponent +- added ability to specify interceptors selector as a service, not just as instance +- added ability to specify proxy hook in fluent API: +- indexers on IKernel are now obsolete. +- added WithAppConfig() method to logging facility to point to loging configuration in AppDomain's config file (web.config or app.config) +- Restructured lifecycle concerns - introduced ICommissionConcern and IDecommissionConcern and favors them over old enum driven style. +- Fixed how contextual arguments are handled. Null is no longer considered a valid value (That would cause an exception later on, now it's ignored). +- Changed method DeferredStart on StartableFacility. It now does not take a bool parameter. A DeferredTryStart() method was introduced instead. + +2.5.0 beta1 (2010-07-05) +================== +- Typed Factories will not implicitly pick default ITypedFactoryComponentSelector registered in the container anymore +- Obsoleted all the AddComponent* methods in favor of using Installers and fluent registration API +- ServiceSelector delegate (used in WithService.Select calls) changed signature to fix a bug: http://3.ly/eP5Q +- moved IWindsorInstaller to Castle.MicroKernel.Registration namespace +- typed factories will now obey container release policy, that is if the container does not track the component, so won't the factory. +- added helper methods to fluently configure logging facility using: container.AddFacility( f = > f.Fluent().Magic().Here() ); +- added overload for UsingFactoryMethod which exposees ComponentModel of component to the factory +- added generic overloads for ITypeConverter.PerformConversion to reduce casting. +- it is now possible to call WithService.Foo().WithService.Bar() and both services will be used. Also more methods were added: WithService.Self() and WithService.AllInterfaces() +- added simple debugger visualizer to help diagnosing misconfigured components. +- added optimized mode to StartableFacility for Single-call-to-Install scenario that won't start anything before the end of Install (at which point the container is assumed to be completely configured and all components should be there) and it will throw if it can't resolve and start the component. +- added OptimizeDependencyResolution around calls to Install +- Component.IsInNamespace and its sister methods have now overload that let you include components from subnamespaces as well. +- added ability to load assemblies from designated directory (with fair bit of optional filtering using new AssemblyFilter class). It works in three places: + - AllTypes.FromAssemblyInDirectory() - picks assemblies for registration + - FromAssembly.InDirectory() - installs installers from assemblies in the directory + - - installs installers from assemblies in directory via XML +- TypedFactoryFacility - added ability to configure factory inline: Component.For().AsFactory(f => f.SelectedWith("selectorKey")) +- Changed IModelInterceptorSelector's signature and behavior (see breakingChanges.txt for details) +- removed IProxyHook interface (see breakingchanges.txt) +- added support for specifying typed factory component selectors on a per-factory basis +- added support for using services as mixins +- added autogenerated delegate-based factories. Taking dependency on Func and calling the delegate will return IFoo from the container +- implemented IOC-ISSUE-203 - Add to fluent API scanning assemblies for IWindsorInstallers and installing them +- added fluent API for EventWiringFacility +- added ability to specify assemblies that will be scanned for types when shorthened type name is using via XML using the following syntax: + +- added ability to specify installers (IWindsorInstaller) via XML using either of the following: + + + + + installers must be public and have default constructor. +- Xml config does not require assembly qualified type name any more - specifying just type name, or typename+namespace should be enough. Works only for types in already loaded assemblies. +- ResolveAll will now resolve components that are not in Valid state when inline/dynamic arguments are provided +- TypedFactoryFacility: TypedFactoryComponent will now fallback to resolving by type if no component with designated name can be found +- fixed issue with per-web-request components not being released properly in some cases +- fixed IOC-ISSUE-199 - NamingPartsSubSystem broken when RegisterHandlerForwarding is used +- TypedFactoryFacility: added ability to resolve multiple components +- TypedFactoryFacility: added ability to put custom resolving logic +- fixed another case of IoC-168 where a component with two constructors of different parameter length couldn't be resolved when the fewer parameter constructor was not satisfied +- If and Unless functions on fluent registration API are now cumulative - it is legal to call them multiple times and all conditions will be checked. This is a minor breaking change from previous behavior where last call would win. +- added typed arguments (specified by type rather than by name). + It works for: + - call site (Resolve with Dictionary, specifying System.Type as value of key. A helper class 'Arguments' should be used for this.) + - DynamicParameters - there's an extension method Insert that should make using it nicer + - fluent Api (DependsOn(Property.ForKey().Eq("typed")) +- added 'Insert' extension method on IDictionary, specifically so simplify usage in DynamicParameters method and similar situations. It behaves like IDictionary's indexer setter +- added 'Arguments' class to carry inline arguments (typed or named) for components. It is recommended to use this class rather than Hashtable or Dictionary<> +- added strongly typed overloads for StartUsingMethod and StopUsingMethod from startable facility's registration API. It is now possible to call .StartUsingMethod(x => x.Start).StopUsingMethod(x => x.Stop) +- moved StartUsingMethod/StopUsingMethod to extension methods in StartableFacility's namespace. Startable() method was removed as superfluous. +- changed the UsingFactoryMethod (and UsingFactory) methods in fluent registration API to not rely on FactorySupportFacility. They now work even if facility is not used. +- fixed IOC-ISSUE-190 - "Resolve with argumentsAsAnonymousType overload is now case sensitive". + This fixed a regression bug introduced in v2.1, and brings the behavior back to what it was in v2.0. +- added support for specifying interceptorsSelector, proxyHook and mixins from config (see new tests for example). This also means some small impact breaking changes: + - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method has changed signature - it now also takes IKernel and CreationContext, to be used by IReferences to do resolve (see below) + - DefaultProxyFactory.CustomizeProxy protected virtual method has changed signature, for the same reason as above + - ProxyOption's properties changed types: + Selector, from IInterceptorSelector to IReference + Hook from IProxyHook to IReference + MixIns from object[] to IEnumerable> + IReference abstraction allows to use components resolved from the container, similar to InterceptorReferences. +- Moved several types from Core: + ComponentActivatorAttribute + ComponentProxyBehaviorAttribute + CustomLifestyleAttribute + DoNotWireAttribute + InterceptorAttribute + LifestyleAttribute + PooledAttribute + TransientAttribute + GraphNode + IVertex + IRecyclable + IStartable + ComponentModel + ConstructorCandidate + ConstructorCandidateCollection + DependencyModel + DependencyModelCollection + InterceptorReference + InterceptorReferenceCollection + LifecycleStepCollection + MethodMetaModel + MethodMetaModelCollection + ParameterModel + ParameterModelCollection + PropertySet + PropertySetCollection + TopologicalSortAlgo + IOnBehalfAware + GraphSets + GraphTestCase + + +2.1.1 (2010-01-13) +================== +- Reverted factory support facility changes in r6595, r6596 and r6653 which fixed IOC-ISSUE-153, however caused other bugs + reported on the mailing list (http://groups.google.com/group/castle-project-users/browse_thread/thread/3f2b602e738a08c6?hl=en) + +2.1.0 (2010-01-12) +================== +- Moved the logging facility project into the Windsor project: + - Applied Tom Allard's patch fixing FACILITIES-93 + "Extra constructors on LoggingFacility" + - Added test case supplied by chris ortman + - Register base logger and factory when using extended logger. + - Fixed FACILITIES-77 - ILoggerFactory instance creation requires constructor with one argument + +- simplified API for attaching interceptors. + +- added support for forwarded types in XML config + +- added WithParameters method to fluent registration that enables inspecting and modifying arguments passed to Resolve method. +- BREAKING CHANGE - AbstractHandler.Resolve method is no longer abstract and instead a ResolveCore protected abstract method was added. To fix this, implementers should override ResolveCore instead of Resolve. + +- added OnCreate method (refactored from OnCreateFacility created by Tehlike) which allows to specify actions to be invoked on the component right after it is created, and before it's returned from the container + +2.0 +==== + +- Updated FactorySupportFacility and fluent registration to allow propagation + of CreationContext to factory methods + +- Fixed Burden release issue in which children were being released if the + component was not destroyed + +- Automatically configure proxy to omit target if no implementation + +- Fluent interface for factory support + +- Fixed an issue with of not considering unregistered service dependencies in arrays + +- Will not try to convert values that are already a match to the parameter type + +- XmlProcessor now properly dispose of the stream reader + +- The kernel will now check if trying to register null types + +RC 4 +==== + +- Update FromInterface Registration policy to only consider toplevel interfaces + and allow multiple services. + +- Fixed bug in AllComponentsReleasePolicy in which burden not properly handled + on dispose. + +- Applied patch from Joao Braganca to allow abstract types in DefaultComponentActivator if proxied. + +- Added additional AddFacility overrides to improve fluent configuration of facilities. + +- Moved DefaultComponentActivator check for abstract so it can be better overriden. + +- Added Attribute to Component Registration fluent interface. + +- Add ability to use Configure components based on implementation type when + using AllTypesOf. + +- Do not return forward handlers in ResolveAll since you will get duplicate services. + +- Applied patch (with mods) from Martin Nllsson to select registration interface from + containing interface. + +- Added shortcut to AllTypes to accept a where. + +- Added ability to include non-public types in registration. + +- Updated registration to support providing multiple service types. + +- Add registration support for mixins. + +- Do not allow registering components with the same name in fluent interface. + +- Applied Ayendes patch to introduce component service type forwarding to + support multiple service interfaces for a component. + Extended the Component Registration interface to support service forwarding. + +- Avoid to register abstract component via IKernel.AddComponent, now throws when trying to add instead of while resolving component + +- Removed sealed qualifier from CreationContext and made ISubDependencyResolver + methods virtual so they can be overriden. + +- Made IKernel.AddFacility fluent. + +- Added StartMethod/StartMethod to ComponentRegistration. + +- Add if/unless support for ComponentRegistration. + +- Applied Daniel Jins patch to not proxy internal interfaces. + +- Fixed IOC-126 + "PoolableLifestyleManager creates pool in constructor" + +- Fixed IOC-125 + "DefaultGenericHandler does not properly handle proxied generic components" + +- Updated AllTypes strategy to support types based on generic type definitions. + +- Updated AllTypes strategy to support multiple registrations from a single set of types. + +- Collection handlers from parent container for GetAssignableHandlers. + +- Added ability to change invocation target to DefaultProxyFactory. + +- Fixed bug with ComponentRegistration.Instance in which the instance type was not assigned as the ComponentModel implementation. + +- Replaced AllTypesOf syntax with AllTypes.Of so a non-generic version can be consistently provided. + +- Added generic AddFacility methods to kernel. + +- Added generalized configuration support to ComponentRegistration. + +- Added IWindsorInstaller interface to enhance Windsor component installation. + +- Added AllTypesOf registration stratgey to simplify custom registration + scenarios. + +- Added IRegistration interface to allow alternate registration mechanisms. + +- Fixed CORE-16 (Should be Facilities) + "The FactorySupportFacility does not create proxies if interceptors are present" + +- Added support for list service overrides using the fluent registration interface. + Added support for specifying configuration parameters using the fluent interface to allow any complex + registration scenarios. + +- Restructured the registration fluent interface to be a little more readable, + better support component registrations and prevent errors resulting from + forgetting to call ComponentRegistration.Register + +- Fixed Facilities-97 + "EventWiring Facility fails to create some components" + +- Added support for non-generic usage of fluent-interface. Needed for dynamic registrations scenarios (Binsor) + Automatically register the component between consecutive AddComponentEx (Saves a few strokes). + +- Initial version of MicroKernel/Windsor fluent interface IOC-99 + +- Applied patch from Jacob Lewallen improving the locking performance in the DefaultNamingSubsystem under high load. + +- Applied Philippe Tremblay's patch fixing IOC-94 + "Copy LifeStyle from generic interface" + +- Added support for copying interceptors defined on the geneirc interface handler. + +- Fixed IOC-80 + "StartableFacility erroneously tries to start a component before + RegisterCustomDependency can be called" + +- Added ComponentModelConverter to utilize System.ComponentModel TypeConverters + Very useful for converting things like Fonts and Colors + +- Updated DefaultComplexConverter to support interfaces and derived types + +- Fixed IOC-96 + "FactorySupport fails to create components if the factory instance is a proxy" + +- Fixed IOC-93 + "GenericListConverter does not handle service overrides properly" + +- Fixed IOC-91 + "ContextBoundObject's context is not bound when object is created by MicroKernel" + +- Fixed build from IContainerAccessor change + +- Applied Ron Grabowski's patch fixing IOC-89 + "Make DefaultKernel implement IServiceProvider" + +- Check for required Properties before determining the Handlers initial state + +- Fixed IoC-87 + "DefaultComplextConverter does not properly handle nested components" + +- Applied Lee Henson's patch fixing IOC-86 + "Additional generic AddComponent overloads" + +- Applied Ido Samuelson patch fixing IOC-85 + "IKernel to support generics to add/resolve components." + +- Refactored proxy options support. Now you can use the attribute 'marshalByRefProxy' + on the external configuration, or the ComponentProxyBehaviorAttribute + +- Fixed IOC-79 + "Kernel.GetHandlers(Type) does not consider generic handlers when satisfying the type" + +- Updated StartableFacilityTestCase to correctly demonstrate the facility and + added a unit test to demonstrate IOC-80 + +- Applied Alex Henderson's patch that makes the ComponentModel available + to the ILifestyleManager + +- Applied Adam Mills's patch fixing IOC-74 + "BinaryComponentName VisitNode null check" + +- Fixed IOC-67 + "RemoveComponent needs to unwire handlers and remove them" + +- Fixed IOC-59 + "Child component unable to correctly resolve parent service added after the component" + +- Fixed IOC-47 + "Components created by FactoryActivator have their dependencies checked" + +- Applied Marcus Widerberg's patch fixing FACILITIES-84 + "FactorySupport - Allow parameters to factory method to be set at resolvetime" + +- Applied Marcus Widerberg's patch fixing FACILITIES-82 + "Programmatic configuration for FactorySupport" + +- Reverted by Henry -> Apply patch from Sam Camp that fixes problems with Remoting Facility Sample and RecoverableComponent. + +- Updated TypedFactoryFacility to not require a target instance + when proxying. + +- Added Windsor proxy support to create proxies without targets. + +- Removed relationship between ProxyOptions and ProxyGeneration options + and moved ProxyOptions into the MicroKernel. ProxyGeneration options + are created from the ProxyOptions and will probably need to be updated + as facilities demand more proxy generation customizations. + +- Added ProxyOptions to allow facilities to easily add proxy interfaces + without having to create custom proxy factories. The ProxyOptions + are obtained via the ProxyUtil. + +- Fixed IOC-65 + "DictionaryConverter should use the alternate overload of the + PerformConversion method in order to support dictionaries that contain + custom types" + +- Moved ProxyComponentInspector from Castle.MicroKernel to here and added + support to supply ProxyGenerationOptions on a ComponentModel basis. This + provides the needed ability to provide proxy options in facilities. + +- Fixed IOC-69 - DefaultDependencyResolver issue with Service Overrides. + +- Added ComponentProxyBehaviorAttribute and ComponentProxyInspector + to control the creation of component proxies. + +- Added eval support to configuration. Currently it only supports + BaseDirectory as a content to evaluate + + + +- Added IEnvironmentInfo in an attempt to solve complex + configuration/environment issues. + +- Fixing IOC-63 - source order of constructors should not matter + +- Fixed IOC-62 + "Interceptors don't work properly on generic components" + +- Applied Norbert Wagner's patch fixing IOC-55 + "Generic Type Converters: Set default entry types to generic arguments of property type" + +- Applied Jeff Brown's patch fixing IOC-54 + "Empty component parameter values cause runtime exception during component resolution." + +- Applied patch by Bill Pierce that + +-- Introduces the WebUserControlComponentActivator + +-- Introduces the KeySearchNamingSubSystem + +-- Allows you to associate a custom component activator using + 1. componentActivatorType on component node + 2. ComponentActivatorAttribute + +-- Allows you to create and configure child containers + through the configuration, using + + + + + + + ... + + + + ... + + + + + + + +- Applied AndyD's patch fixing IOC-52 + "Remote access to generic components" + +- Fixed IOC-45 + "Proxying a component that has an interface that is extended from another interface throws an exception" + +- Applied patch by Ernst Naezer fixing IOC-37 + "Resolving with arguments in Windsor" + +- Fixed IOC-43 + "Creation of an Attribute in the Kernel that allows one property to be ignored by the dependency builder" + + Introduced DoNotWireAttribute that marks a property and prevents it + from being considered by the container + +- Changed Windsor to use DynamicProxy 2 + +- Applied patch by Adam Mills fixing IOC-42 + "ResolveServices", new method added to IKernel + +- Applied patch by Adam Mills fixing IOC-41 + "Bug Fix BinaryTreeComponentName - Assumed Lesser nodes went to left" + +- Applied patch by Adam Mills fixing IOC-40 + "Provided an Implementation for BinaryTreeComponentName.Remove" + +- Applied patch by Adam Mills fixing IOC-39 + "Fix for Null Reference when accessing empty BinaryTreeComponentName" + +- Fixed IOC-35 + "Add bootstrap section to configuration file" + +- Fixed issue where KeyAlreadyAdded exception would be throw for + components accepting two parameters of the same type, without overrides + +- Fixed IOC-36 + "Transient components with multliple constructors throw + unresolved dependency exceptions." + + Removed best candidate reference, as the kernel is dynamic it should + not cache best constructors as components can be added or removed + at any time + + Removed Points from candidates, as in a multithreaded scenario + this would lead to failures + + +- Fixed IOC-34 + "Cannot use types having their own base type as constructor argument" + + See revision r2787 + +- IOC-32, Support generic collections. + Supported collections are: ICollection, IList, List, IDictionary, Dictionary, IEnumerable + +RC 3 +==== + +- Applied patch by William C. Pierce adding PerWebRequestAttribute + +- Added setter to ReleasePolicy property + +- Applied Curtis Schlak's patch fixing IOC-30 + "Add overload to Windsor AddComponent to specify the Lifestyle" + +- Refactored AbstractHandler to use IDependencyResolver + +- Dependencies can be resolved now in three levels: + + * CreationContext (which now implements ISubDependencyResolver) + * IHandler (which now implements ISubDependencyResolver) + * IKernel which is the normal flow + +- Implemented IoC-29 using a different approach + +- Renamed IKernel.AddComponentWithProperties to AddComponentExtendedProperties. + The old method name misled the programmer about its purpose. + +- Added a PerWebRequestLifestyleManager which creates at most one instance of + an object per web request. To use it you must add the following http module + + + ... + + + + + The strong name could be omitted if not in the GAC + +- Added checks to handle cycles in dependencies graphs and avoid deadly Stack Overflow Exceptions. + +- Fixed IOC-24: "Allow user to provide an attribute which will customize how to inspect properties (PropertiesDependenciesModelInspector)" + Now users can add an 'inspectionBehavior' attribute to the component node that defines + the inspection strategy. Possible values are + + - None: No properties inspection should happen + - All: All properties will be inspected and collected (on the class and on the superclasses). + This is the default behavior + - DeclaredOnly: Only properties specified on type are checked (superclasses will be ignored) + +- Added overload to ITypeConvertor that accept the current node configuration as well as the type in CanHandleType() + +- Change: Better error message when there's an exception + setting up properties + +- Fixed IOC-25: Overrides on the configuration should be considered a non-optional dependency + + This fix changes a little the MicroKernel behavior. Now if you specify an service override + through external configuration, it will be considered a _non-optional_ dependency + +- Uri usage replaced by CustomUri which, differently than MS' Uri class, has the same + behavior on net-1.1, net-2.0 and mono + +- EventWiring Facility: now when a publisher is requested, the subscribers + are automatically started. + + The side effects are: + + - when a subscriber is requested it won't be wired automatically. + - There no much sense in having a subscriber with a lifestyle other than singleton + + I'm still evaluating this idea. Sometimes wiring only when the subscriber is requested + might make sense, but supporting both approaches is kinda hard. + + +- Applied patch by Alex Henderson adding + IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer) + and IKernel.RemoveChildKernel(IKernel kernel) + +- Applied fix by Ahmed. Now defines can be used on properties nodes like + + + + x + + + +- Now with DictionaryConverter you can specify the keyType and valueType on each entry (kudos to Ahmed) + +- xmlinterpreter will throw an exception if a property is not defined but referenced +using #{propertyName} syntax.(Patch from Ahmed) + +- XmlProcessor refactored from XmlInterpreter (kudos to Ahmed) + Now PI are also supported (don't forget to document this on the wiki) + +- Support for nested nodes on the properties. (kudos to Ahmed) + Example: + + + + + Joe + Doe + + + #{ MyComponentParams } + + + + Will result in + + + Joe + Doe + + + +- Type converter for kernel components. This allows a usage like this: + + + + + + + ${keytocomponent1} + ${keytocomponent2} + + + + +- Removed support for MethodMeta on ComponentModel. The design decision here + is to make the facilities interested on it to extend MethodMetaInspector + reading from a specific node. + +RC 2 +==== + +- AsyncInitializationContainer introduced. Special container flavor that installs the + facilities and components using a background thread. + +- Support for evaluation of expressions within the xml configuration (kudos to Ahmed) + The following "statements" are supported: + + + + + + component/facility nodes + + + + + + + + + + + + + + + + + +- Startable facility: support to specify the attribute startable=true on the configuration + +- Better error messages: now the components waiting for dependencies will recursively + report what they are waiting for. + +- Support for custom lifestyle through configuration (kudos to Bawer Dagdeviren): + + + +- Added Type converter for enums + +- Support to associate configuration nodes to methods. Usage: + + + + + + + + + + Which is equivalent to + + + + + + + + + +- IResource introduced (FileResource, AssemblyResource, ConfigResource and UncResource) + which are accessible through Uris: + + - FileResource: + file://pathtofile + (For example: file://c:\mydir\file.txt) + + - AssemblyResource: + assembly://AssemblyName/ExtendingNamespace/filename + (For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml) + + - ConfigResource: + config://sectioname + (For example: config://castle will fetch the + entry in the configuration) + + - UncResource: + \\server\file + (For example: \\mysharedplace\myconfig.xml) + +- IResource, IResourceFactory and IResourceSubSystem introduced + +- Ability to use in configuration files. Usage + + + prop1 value + prop2 value + + + + + + #{prop1} + + + + + + + + + +- Ability to use in configuration files. Usage + + Main file: + + + + + + + + include1.xml: + + + + + + + + + + + + + + + + +Beta 3 +====== + +- Bug in dependency resolution (when chained) fixed +- Better message description on exceptions related to unresolved dependencies. +- Fixed bug in AddComponentWithProperties + +Beta 2 - 10/apr/2005 +====== + +- Bug fixes + +- Configuration object model separated into interpreters and sources + +- AbstractFacility added + + +Beta 1 - 21/jan/2005 +====== + +- Changed: from #{} to ${} - way of referencing to another component + on the configuration. + +- Added: support for dictionaries, lists and arrays on the configuration file. + + + + + + value + + + + + +- Added: Component Graph (used by the Remove method and to dispose the components) + +- Fixed: Remove method + +- Fixed: Windsor: Proxy for components with (service != impl) diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/License.txt b/lib/packages/Castle.LoggingFacility.3.2.0/License.txt new file mode 100644 index 0000000..107b1fd --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/License.txt @@ -0,0 +1,14 @@ +Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..edc92a7 Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..8edb825 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net35/Castle.Facilities.Logging.xml @@ -0,0 +1,64 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + + loads configuration from current AppDomain's config file (aka web.config/app.config) + + + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..85fa611 Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..8edb825 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40-client/Castle.Facilities.Logging.xml @@ -0,0 +1,64 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + + loads configuration from current AppDomain's config file (aka web.config/app.config) + + + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..8f821fb Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..8edb825 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net40/Castle.Facilities.Logging.xml @@ -0,0 +1,64 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + + loads configuration from current AppDomain's config file (aka web.config/app.config) + + + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..56d667a Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..8edb825 --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/net45/Castle.Facilities.Logging.xml @@ -0,0 +1,64 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + + loads configuration from current AppDomain's config file (aka web.config/app.config) + + + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..eb93dd6 Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..00dda3c --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl4/Castle.Facilities.Logging.xml @@ -0,0 +1,58 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.dll b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.dll new file mode 100644 index 0000000..c09d0bd Binary files /dev/null and b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.dll differ diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.xml b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.xml new file mode 100644 index 0000000..00dda3c --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/lib/sl5/Castle.Facilities.Logging.xml @@ -0,0 +1,58 @@ + + + + Castle.Facilities.Logging + + + + + The supported implementations + + + + + Custom resolver used by Windsor. It gives + us some contextual information that we use to set up a logging + before satisfying the dependency + + + + + A facility for logging support. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + + + + Initializes a new instance of the class using a custom LoggerImplementation + + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. + + + + Initializes a new instance of the class. + + The LoggerImplementation that should be used + The configuration file that should be used by the chosen LoggerImplementation + The type name of the type of the custom logger factory. (only used when loggingApi is set to LoggerImplementation.Custom) + + + diff --git a/lib/packages/Castle.LoggingFacility.3.2.0/readme.txt b/lib/packages/Castle.LoggingFacility.3.2.0/readme.txt new file mode 100644 index 0000000..cec070b --- /dev/null +++ b/lib/packages/Castle.LoggingFacility.3.2.0/readme.txt @@ -0,0 +1,8 @@ +Thanks for downloading this Castle Windsor package. +You can find full list of changes in changes.txt + +Documentation: - http://docs.castleproject.org/Windsor.MainPage.ashx +Discusssion group: - http://groups.google.com/group/castle-project-users +StackOverflow tags: - castle-windsor, castle + +Issue tracker: - http://issues.castleproject.org/dashboard \ No newline at end of file diff --git a/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nupkg b/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nupkg new file mode 100644 index 0000000..94b9704 Binary files /dev/null and b/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nupkg differ diff --git a/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nuspec b/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nuspec new file mode 100644 index 0000000..46da432 --- /dev/null +++ b/lib/packages/Castle.Windsor-log4net.3.2.0.1/Castle.Windsor-log4net.3.2.0.1.nuspec @@ -0,0 +1,23 @@ + + + + Castle.Windsor-log4net + 3.2.0.1 + Castle Windsor log4net integration + Castle Project Contributors + Castle Project Contributors + http://www.apache.org/licenses/LICENSE-2.0.html + http://docs.castleproject.org/Windsor.MainPage.ashx + http://docs.castleproject.org/GetFile.aspx?File=/windsorLogo100px.png + false + Castle Windsor integration package for logging facility via log4net. + + Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + + castle, windsor, inversionOfControl, DependencyInjection, logging, log4net + + + + + + \ No newline at end of file diff --git a/lib/packages/Castle.Windsor.3.2.0/ASL - Apache Software Foundation License.txt b/lib/packages/Castle.Windsor.3.2.0/ASL - Apache Software Foundation License.txt new file mode 100644 index 0000000..e259b58 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/ASL - Apache Software Foundation License.txt @@ -0,0 +1,57 @@ +Apache License, Version 2.0 + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/lib/packages/Castle.Windsor.3.2.0/BreakingChanges.txt b/lib/packages/Castle.Windsor.3.2.0/BreakingChanges.txt new file mode 100644 index 0000000..07f93d0 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/BreakingChanges.txt @@ -0,0 +1,936 @@ +=== version 3.1 +================================================================================================ +change - Windsor will no longer allow components from parent container to have dependencies from + child container when resolving via child container. + Class ParentHandlerWithChildResolver was renamed to ParentHandlerWrapper + +impact - low +fixability - medium + +description - Previously in some cases, when resolving from child container Windsor would allow + component from the parent container to depend on components from a child container. + This would lead to all sorts of problems (child coomponents leaking to parent scope, parent + components being released prematurely when disposing of the child container etc. + Overall this behavior was a mess, and was removed. + See http://issues.castleproject.org/issue/IOC-345 for more details + +fix - If you were depending on the old behavior it is best to restructure your dependencies so + you don't have to have those inverted dependencies. + Since each scenario is different it's best to discuss any questions you may have on the user + group. + +================================================================================================ +change - IHandler.SupportsAssignable(Type) method has been added + +impact - low +fixability - easy + +description - This was added to better support IGenericServiceStrategy on generic handlers when + calling IKernel.GetAssignableHandlers(Type). Now the handler can decide whether it wants to + consider itself assigmable to given service. + +fix - This change affects you only if you're implementing custom IHandler. Implementation is + dependent on your usage and semantics you want to support for this scenario. When in doubt + ask on castle-users-group on Google Groups. + +================================================================================================ +change - System.String, and some other types can no longer be registered as a service + in the container + +impact - low +fixability - easy + +description - This is something that probably should never have made it into the codebase. Now + if you try to register String, a collection of strings or collection of value types Windsor + will throw an ArgumentException and not allow you to do that. + +fix - If you did register those types in the container change them from being components + to being parameters on the components that were depending on them. + +================================================================================================ +change - DependencyModel.IsValueType is renamed to DependencyModel.IsPrimitiveTypeDependency. + +impact - low +fixability - easy + +description - This is part of unification of how types that can not be registered as valid + services are found and treated in Windsor. + Also the property now returns true if TargetItemType is null. Previously it returned false. + +fix - Change usages of IsValueType to IsPrimitiveTypeDependency if you depended on behavior when + TargetItemType is null, you might also need to check its value to preserve the old behavior. + + +=== version 3.0 +================================================================================================ +change - Typed factory using DefaultTypedFactoryComponentSelector when resolving component + by name will not fallback to resolving by type if component with that name can not be found + and will throw an exception instead. + +id - typedFactoryFallbackToResolveByTypeIfNameNotFound +impact - medium +fixability - easy + +description - Original behavior from v2.5 could lead to bugs in cases when named component was + not registered or the name was misspelleed and a wrong component would be picked leading to + potentially severe issues in the application. New version adapts fail-fast approach in those + cases to give dvelopers immediate feedback the configuration is wrong. + +fix - Actual fix depends on which part of the behavior you want: + - If you do care about the fallback behavior, that is get the component by name and if + not present fallback to resolve by type, you can specify it explicitly when registering your + factory: + .AsFactory( + new DefaultTypedFactoryComponentSelector(fallbackToResolveByTypeIfNameNotFound: true)); + - if you don't care about the fallback and what you really want is a 'GetSomeFoo' method + that resolves by type, either rename the method so that its name doesn't start with 'get' + or disable the "'get' methods resolve by name" behavior explicitly when registering your + factory: + .AsFactory(new DefaultTypedFactoryComponentSelector(getMethodsResolveByName: false)) +================================================================================================ +change - Referencing interceptors by type will not work if the interceptor has custom name. + +impact - medium +fixability - easy + +description - We unified how referencing components by type works all across Windsor and that + introduced change for some areas like referencing interceptors. Now referencing component + by type means "component implemented by given type with default name". This is how it worked + for service overrides and is now adapted all across the framework. + +fix - Remove Name (id in XML registration) from the referenced components if you're not using it + or reference the component by its name. +================================================================================================ +change - .Service method on mixing registration has been removed and replaced with .Component. + +impact - low +fixability - easy + +description - The method had misleading name and behavior inconsistent with the rest of Windsor. + As such it's been replaced with .Component method which is more explicit about what argument + passed to it means + +fix - Replace with .Component method: +Container.Register(Component.For() + .ImplementedBy() + .Proxy.MixIns(m => m.Component())); + Notice the new method is behaving consistently with how referencing interceptors and service + overrides works. So you may need to adjust generic argument to point to other component's + implementation type rather than its exposed service. +================================================================================================ +change - Generic overloads of .Insert(this IDictionary dictionary, otherarguments) extension + method have been removed. + +impact - low +fixability - easy + +description - The overload could cause unexpected behavior when the generic parameter was being + inferred, and as such it is removed to make the type always explicit. + +fix - Use overload that specifies type explicitly: + d.Insert(typeof(IFoo), new MyFoo()) instead of d.Insert(new MyFoo()) or new, explicit + d.InsertTyped(new MyFoo()) +================================================================================================ +change - Method object Generate(IProxyBuilder, ProxyGenerationOptions, IInterceptor[]) on type + IProxyFactoryExtension changed signature. + + +impact - low +fixability - easy + +description - To handle new scenarios two additional arguments were introduced: + ComponentModel model and CreationContext context. + +fix - If you were implementing IProxyFactory and calling down to IProxyFactoryExtension pass your + own arguments down to IProxyFactoryExtension. If you're implementing IProxyFactoryExtension + adjust your signature and if that makes sense in your context use the arguments. +================================================================================================ +change - ProxyUtil class was split and part moved to Castle.Core.dll and other was renamed + +impact - low +fixability - easy + +description - ProxyUtil contained logic useful not just in the context of Windsor. As such + it was moved to be part of DynamicProxy and most methods are now part of the other assembly. + The only method specific to Windsor: ObtainProxyOptions was left and is now an extension + method in class ProxyOptionsUtil. + +fix - If you were using ObtainProxyOptions use it either as extension method or update its type + name to ProxyOptionsUtil. Remining methods are now part of ProxyUtil class which was moved + to Castle.DynamicProxy namespaces and lives in Castle.Core.dll +================================================================================================ +change - CreateLifestyleManager method was moved from handlers to IKernelInternal + +impact - low +fixability - easy + +description - That behavior belongs in the kernel. + +fix - You shouldn't be using this method unless you're implementing custom handlers. If you do + call back to the kernel instead of implementing it in yoru handler. +================================================================================================ +change - Removed interface Castle.Core.ILifecycleConcern + +impact - low +fixability - easy + +description - This change was made because with this base interface it was impossible to + implement Castle.Core.ICommisssionConcern and Castle.Core.IDecommissionConcers in single class + Additionaly ILifecycleConcern had no meaning, only the ICommisssionConcern and + IDecommissionConcers have + +fix - If you have code using directly ILifecycleConcern (but what for?) you need to + migrate to either ICommisssionConcern or IDecommissionConcers. For code that use + ICommisssionConcern and IDecommisssionConcern you can recompile it to be extra save, but it + is not required. +================================================================================================ +change - Removed overloads of Configure and ConfigureFor<> methods of the fluent registration + API that had ConfigureDelegate parameter + +impact - high +fixability - easy + +description - This change was made to simplify the API and remove ambiguity in cases where a + private method is used to provide the configuration. + +fix - This change breaks scenarios where a property was being used as the last element of the + chain in the nested deledate, like: + Configure(c => c.LifeStyle.Transient) + This code will no longer compile. To fix it switch to the new methods exposing lifestyle: + Configure(c => c.LifestyleTransient()) or simply:: + LifestyleTransient() +================================================================================================ +change - ITypedFactoryComponentResolver interface was removed and ITypedFactoryComponentSelector + now returns Func from SelectComponent method + +impact - low +fixability - easy + +description - This change was made to simplify coding of advanced custom selectors which means + now only one type needs to be created instead of two and change is much more localized. + +fix - If you were using DefaultTypedFactoryComponentSelector this change does not affect you. + otherwise return delegate pointing to Resolve method of your ITypedFactoryComponentResolver + class or inline it altogether. +================================================================================================ +change - Add() methods on PropertySetCollection and ConstructorCandidateCollection are no longer + publicly accessible + +impact - low +fixability - easy + +description - This change was made to ensure and encapsulate the fact that as constructor or + property dependency is added the dependency is also added to Dependencies collection on + ComponentModel. + +fix - Use new AddProperty or AddConstructor methods respectively. +================================================================================================ +rename - WithService.DefaultInterface() -> WithService.DefaultInterfaces() +description - changed to plural to emphasize more than one interface may be matched. +================================================================================================ +change - ResolveAll methods have now different bahaviour. + +impact - high +fixability - medium + +description - Previously Windsor when ResolveAll was called would try to resolve all components + with implementation type assignable to the type requirested and silently ignore those it + could not resolve. This behavior was introduced before Windsor had ability to support multi + service components and at the time it was the only way to support certain scenarios. + Currently this behavior is no longer required and is indeed leading to issues when dealing + with code that doesn't strictly follow good OOP principles. Also by silently ignoring + unresolvable components it may mask registration issues, that's why it was changed. + +fix - Now ResolveAll() will only resolve components that explicitly expose Foo as their + service. If you were depending on the implicit behavior previously, make sure you add all + types you resolve via this method as service to the desired components. + Also Windsor now will throw exception if any of the components can't be resolved. If you + have a legitimate reason to have unresolvable component use IHandlersFilter to filter that + components out. +================================================================================================ +change - The following methods were removed: + IHandler.AddCustomDependencyValue + IHandler.HasCustomParameter + IHandler.RemoveCustomDependencyValue + IHandler.OnHandlerStateChanged event + IKernelInternal.RaiseHandlerRegistered + IKernelInternal.RaiseHandlersChanged + IKernelInternal.RegisterCustomDependencies (all 4 overloads) + +impact - low +fixability - easy + +description - Those members were remainings from the old era and there's no longer any point in + having them. + +fix - Pass the dependencies directly to the ComponentModel using DependsOn method on the fluent + registration API. The OnHandlerStateChanged event would no longer be raised so there was no + point in keeping it around either. Use HandlersChanged event on kernel instead. +================================================================================================ +change - IReference.Attach and .Detach method have now ComponentModel as their parameter. + +impact - low +fixability - easy + +description - To accomodate changes in DependencyModel and ParameterModel it was required to + have access to both of them hence ComponentModel is being passed as a more generic object + exposing access to all required elements. + +fix - Pass in full ComponentModel, not just it's .Dependencies property. In the reference + use component's properties to do all you require +================================================================================================ +change - IDependencyAwareActivator has new method: bool IsManagedExternally(ComponentModel); + +impact - low +fixability - easy + +description - To implement feature IOC-277 this new customization point was introduced which + allows custom activators to specify whether the instance they activate shoud be managed + by the container. If true is returned this signifies to the container that the component + should not be tracked by the release policy. The activator should in that case also not + invoke any lifecycle steps. Notice that lifestyle manager can override the choice and that + this method will not be called in all cases. + +fix - Implement the method however makes sense to you. By default you should just return false. +================================================================================================ +change - IExposeDependencyInfo.ObtainDependencyDetails method signature has changed + +impact - low +fixability - easy + +description - To move the code for constructing the exception when dependencies are missing + out of handlers and open way for different scenarios a new interface was introduced: + IDependencyInspector and it is now used by IExposeDependencyInfo to provide the same + functionality as before. + +fix - Adjust the calls to the new signature. If you have custom handler type take a look at + how built in handlers are now implemented. +================================================================================================ +change - type attribute is now required and id is ignored in facility XML configuration + +impact - low +fixability - easy + +description - Since type is uniquely identifying facilities there was no point in keeping the id + around anymore. + +fix - This change can affect you in two ways. If you were using facilities node in the XML and + not specifying the type it is now mandatory. Notice Windsor's ability to apply short type + names works here as well, so often just type name is enough - no need to specify assembly + qualified name. Also the assembly will now be instantiated by the container, so if you were + adding it in code later on, this is no longer required (in fact it will throw an exception + saying the assembly was already added). + The other thing that may affect you is if you were looking up facility config namnually via + IConfigurationStore.GetFacilityConfiguration method. It now expects full name of the type + as the key, so you should be calling it like this: + store.GetFacilityConfiguration(typeof(YourFacility).FullName); +================================================================================================ +change - EventWiringFacility, FactorySupportFacility and RemotingFacility are extracted to their + own assemblies + +impact - low +fixability - easy + +description - These facilities are rarely used and two of them (FactorySupportFacility and + RemotingFacility) are mostly considered legacy. As such there's no point in keeping them + in Windsor's assembly, especially in Silverlight version. + +fix - Reference the new assemblies and update your references in XML if you use it. +================================================================================================ +change - Component.For(ComponentModel) overload was removed. + +impact - low +fixability - medium + +description - To simplify internal structure of fluent registration API and bring it more in + line with standard registration the overload was removed. + +fix - If you really need this overload you can create custom IRegistration that exposes this + functionality. Or better rethink why you need it in the first place. +================================================================================================ +change - Adding more than a single facility of any given type is not legal anymore + +impact - none (I hope) +fixability - easy + +description - Doing so is a bug. Why would you do it in the first place? + +fix - Stop doing it. +================================================================================================ +change - RegisterCustomDependencies methods were moved from IKernel to IKernelInternal. + +impact - low +fixability - easy + +description - Those methods are hardly ever used these days so there was no point in polluting + the public API with them + +fix - Are you really using those methods? Perhaps you should be using the fluent API? If not + just cast the kernel to IKernelInternal and you can access them. +================================================================================================ +change - IWindsorContainer.AddFacility and IKernel.AddFacility overloads that were taking + Func were removed. + +impact - low +fixability - easy + +description - Those overloads were only cluttering the API and confusing users. There was no + point in keeping them + +fix - You should not have to fix that at all. C# compiler (in version 3 or higher) should be + smart enough to pick the Action overload automatically if you're using lambda + syntax. If you aren't, please do, or adjust the call to match the Action overload +================================================================================================ +change - IComponentModelBuilder.BuildModel and ComponentModel constructor take ComponenName now + instead of string for 'name' parameter + +impact - low +fixability - easy + +description - Most of the time name given to components is automatically generated and user does + not care what it is and never interacts with it. To be able to tell apart cases when user + did set the name manually, and when it was auto-generated a new type ComponenName has been + introduced which in addition to the name value keeps track of whether the name was provided + by user or autogenerated. + +fix - Update your calls accordingly, creating the ComponentName and passing right values in. + Also in the fluent API the method NamedAutomatically was introduced for use by facilities + and such to register their own components with some name that the user will not care about. +================================================================================================ +change - IConfigurationInterpreter.ProcessResource now takes an additional argument: IKernel + +impact - low +fixability - easy + +description - To accomodate ability not to specify id when configuring components or facilities + in XML config in conjunction with simple type name support in Windsor (this feature that + lets you specify just simple type name like Foo, instead of assembly qualified name like + Acme.Crm.Foo, Acme.Crm) access to conversion subsystem was required and it made sense to + grab entire kernel as some other things could be taken advantage of. + +fix - Pass the kernel in. +================================================================================================ +change - Release policies have now slightly different semantics. + +impact - medium +fixability - medium + +description - To limit unnecessary tracking of components, which unnecessarily consumes memory + and causes contention in multithreaded scenarios the following change was made to release + policy semantics: + - only objects whose decommission is managed by the policy (ie which are released by call to + policy.Release, or indirectly: container.Release) can now be Tracked. This is determined by + the 'RequiresPolicyRelease' flag on Burden. If the flag is not set the policy can throw. + +fix - The change is likely to affect code using custom lifetime managers. It is now up to the + manager to decide if it will release the object itself (then it should pass 'true' to + 'public Burden CreateBurden(bool trackedExternally)' method on CreationContext). Tracking + happens also for objects that require it ('RequiresDecommission' on burden is 'true'). + If lifestyle manager wants to make sure the object will be tracked it can set this flag. + Otherwise it is up to Windsor to decide if it needs to track the object or not. + Another side-effect of the change is that calling 'container.Kernel.ReleasePolicy.HasTrack' + may now return 'false', when it previously would return 'true', if the object does not meet + the criteria mentioned above. If you were using this method, make sure you review your code + that depends on it, and adjust it to the new requirements. The semantics of 'HasTrack' is + 'does the release policy track this object', not 'does anything in the container track it' + anymore. +================================================================================================ +change - IReleasePolicy interface has a new method: IReleasePolicy CreateSubPolicy(); usage of + sub-policies changes how typed factories handle out-of-band-release of components (see + description) + +impact - medium +fixability - easy + +description - This was added as an attempt to enable more fine grained lifetime scoping (mostly + for per-typed-factory right now, but in the future also say - per-window in client app). + As a side-effect of that (and change to release policy behavior described above) it is no + longer possible to release objects resolved via typed factories, using container.Release. + As the objects are now tracked only in the scope of the factory they will be released only + if a call to factory releasing method is made, or when the factory itself is released. + +fix - Method should return new object that exposes the same behavior as the 'parent' usually it + is just best to return object of the same type (as the built-in release policies do). +================================================================================================ +change - IHandler.Release now takes Burden, not object as its parameter. Burden.Release now has + no arguments (used to take IReleasePolicy) + +impact - low +fixability - easy + +description - The method used to take component instance to release. Now it takes Burden which + has some additional information and behavior. Also to decouple Burden from IReleasePolicy + it now uses callback (via Released event) as notification mechanism. + +fix - Adjust calls appropriately +//TODO: expand this with better description once the rest of the changes is in place. +================================================================================================ +change - AllComponentsReleasePolicy was removed, ILifestyleManager.Resolve has different + signature now, and additional responsibilities. + +impact - medium +fixability - medium + +description - Handling of decision regarding tracking is now happening in two steps. First step + happens in the lifestyle manager, which gets to decide if the instance should be tracked + at all (which should be chosen when a new instance is created) and if IReleasePolicy should + own (trigger) the release process. + +fix - If you implement custom lifestyle consult the implementation of standard lifestyles for + examples how to handle each aspect of component lifestyle management. Broadly speaking the + behavior should be the following (*do* inherit from AbstractLifestyleManager for your own + convenience): + - if your lifestyle employs caching, it should cache Burdens, not the objects resolved + directly. Look up its cache, and if you find matching burden return object it manages + (accessed via 'Instance' property) + - on cache miss call base.CreateInstance to obtain new instnace from activator. This method + will not return the managed object directly but rather a Burden instance. The 2nd argument + 'trackedExternally' should be set to true if the lifestyle manager uses some external mecha- + nism to track end of life for components. If not, (when set to true) releasePolicy will take + the responsibility. + - inspect burden's RequiresDecommission property. If its value is true that means either + the intsance obtained or at least one of its dependencies can not be released out of band + and will require to be released explicitly. If the property is set to true you are required + to track the componetn obtained with releasePolicy provided (you can use base.Track method + to acheave that). If the property is false, release policy will ignore the component when + container's Release method is called, and rely on your out of band handling). + - cache your newly obtained instance if needed. + - return the intance, (burden.Instance) +================================================================================================ +rename - CreationContext.Empty -> CreationContext.CreateEmpty() +description - readability change to make it obvious that new instance is created each time. +================================================================================================ +change - IServiceProviderEx was removed as base interface for IWindsorContainer and IKernel + +impact - low +fixability - easy + +description - To make the interface for the container more compact the functionality was + extracted to external class - WindsorServiceProvider. + +fix - Use WindsorServiceProvider instead. +================================================================================================ +rename - INamingSubSystem.GetHandlers -> INamingSubSystem.GetAllHandlers +description - readability change. No affect on behavior +================================================================================================ +change - Removed the following methods: + GraphNode.RemoveDepender, + GraphNode.RemoveDependent, + IKernel.RemoveComponent, + IKernelEvents.ComponentUnregistered, + INamingSubSystem.this[Type service], + INamingSubSystem.GetHandler, + INamingSubSystem.GetService2Handler, + INamingSubSystem.GetKey2Handler, + INamingSubSystem.UnRegister(String key), + INamingSubSystem.UnRegister(Type service) +Also INamingSubSystem.Register now takes only IHandler as its argument + +impact - low +fixability - none + +description - The methods were implementation of "remove component from the container" feature + which was flawed and problematic, hecen was scraped. + +fix - Working around is quite dependant on your specific usage. Try utilizing IHandlerSelectors. + For changed Register method, just update your calling code not to pass the name. + handler.ComponentModel.Name is now used as the key, as it was happening in all places so far + anyway, so this change should have no real impact. +================================================================================================ +change - Removed the following types: ContainerAdapter, ContainerWrapper, IContainerAdapter, + IContainerAdapterSite + +impact - low +fixability - none + +description - These types require ability to remove components from a container. This ability + was removed and since these types are hardly ever used, they were removed as well. + +fix - No quick fix is possible. If you are depending on this functionality proaly your best shot + is to replicate it, espeicially catering for the removal of components which is no longer + available in Windsor. +================================================================================================ +change - Removed ComponentRegistration.If and ComponentRegistration.Until methods, as well as + Component.ServiceAlreadyRegistered method, and replaced their most common usage with + ComponentRegistration.OnlyNewServices method + +impact - medium +fixability - easy/hard + +description - To make the API simpler easier to discover as well as to allow changes in internal + architecture, the aforementioned changes were made. + +fix - Most of the time the removed methods were used in the following combination: + Component.For().Unless(Component.ServiceAlreadyRegistered) + In this case the fix is simple. Just replace the .Unless(Component.ServiceAlreadyRegistered) + with .OnlyNewServices() + If you were using the method in some other way, the fix may be more complicated and depend + on your particular scenario. In those cases it's best to consult Castle users group for + advice on how to proceed. +================================================================================================ +change - Rebuilt how components exposing multiple services are handled internally. This includes + several changes to the API: + ForwardingHandler class and IHandlerFactory.CreateForwarding method were removed. + ComponentModel.Service property was removed replaced with ClassService and InterfaceServices + properties. Also AddService method was added. Constructor's argument for service was changed + to be Type[] instead of single Type. + IHandler.Service property was removed, replaced by Services property. + IComponentModelBuilder.BuildModel method takes now ICollection isntead of single Type + as services. + ComponentRegistration.For(Type serviceType, params Type[] forwaredTypes) method was removed. + ComponentFilter delegate type was removed as no longer needed + +impact - low +fixability - easy + +description - As part of improvement to internal architecture changed how components exposing + more than one service are handled. + +fix - This change should not affect most users, unless extending internals of the container. If + that's the case, adjust your calls to the new signatures, and change code anticipating + ForwardedHandlers to use Services collection from the solve IHnadler for any given component +================================================================================================ +change - Proxies no longer implicitly implement all interfaces of component implementation type. + +impact - medium +fixability - medium + +description - This original behavior was actually a bug and would produce unpredictible behavior + for components exposing several services including their class. + +fix - if you were depending on the additional non-service intrfaces being forwarded to the proxy + specify them explicitly as addtional interfaces to proxy: + container.Register(Component.For() + .Named("a"), + Component.For() + .ImplementedBy() + .Interceptors("a") + .Proxy.AdditionalInterfaces(typeof(ICommon2)) + .LifeStyle.Transient); +================================================================================================ +change - NamingPartsSubSystem, KeySearchNamingSubSystem, ComponentName, BinaryTreeComponentName + and TreeNode types were removed. + +impact - medium +fixability - medium + +description - As part of internal cleanup these esoteric, alternative implementations of naming + subsystem were removed. + +fix - behavior of these implementations of naming subsystem can be easily emulated with default + naming subsystem and custom IHandlerSelectors, which is the recommended way to go. +================================================================================================ +change - UseSingleInterfaceProxy option was removed + +impact - low +fixability - easy + +description - As part of clean up of the obsolete API the option was removed to enable certain + internal changes for the release. + +fix - if you were using this option and you have to use it, use a IProxyGenerationHook impl + and choose to only proxy members of that single interface. + + +================================================================================================ +release 2.5.2 ================================================================================== +================================================================================================ +change - One of CreationContext constructors has now additional argument; parent CreationContext + Method public IDisposable ParentResolutionContext(...) on CreationContext was removed + Method protected CreationContext CreateCreationContext(...) has now additional argument; + parent CreationContext + +impact - low +fixability - medium + +description - To fix issue with false positive cycle detection (see issue IOC-238) changes had + to be made to how parent creation context gets propagated in certain situation (when call + to kernel.Resolve/ResolveAll is performed as part of resolution process, for example when + CollectionResolver is being used). + +fix - If you override CreateCreationContext method on DefaultKernel pass the additional argument + as new constructor parameter to CreationContext. + If you were using ParentResolutionContext method it should be fairly safe to remove the call + if it was preceded by call to updated CreationContext constructor and the CreationContext is + not used outside of local scope. In other cases it's best to consult Castle users group for + advice on how to proceed. +================================================================================================ +change - IReference<> interface has two new methods + +impact - low +fixability - easy +revision - + +description - To make it possible to statically analyze dynamic dependencies provided by + the IReference interface two new methods were added: + void Attach(DependencyModelCollection dependencies); + void Detach(DependencyModelCollection dependencies); + +fix - if you're providing dependencies on a component from the container call Attach so that + reference gets a chance to create and add DependencyModel for that dependency so that + it can be statically analyzed by the container. +================================================================================================ +change - Method IDependencyResolver.Initialize change signature + +impact - low +fixability - easy +revision - + +description - To make it possible to use custom DependencyResolver inheriting from + DefaultDependencyResolver initialization of DefaultDependencyResolver was moved out of its + constructor and to IDependencyResolver.Initialize method which now takes IKernel as its + additional parameter + +fix - if you're implementing the interface adjust signature of the overriding method to + public void Initialize(IKernel kernel, DependencyDelegate dependencyDelegate) + The method is called by the kernel at the end of its constructor. +================================================================================================ +change - Changed visibility of members on AbstractFacility to protected and implementation of + interface members to explicit. + +impact - low +fixability - easy +revision - + +description - To make it less confusing to users when fluently configuring facilities (via + AddFacility(f => f.ConfigureSomething()) method) visibility of certain members + of AbstractFacility class was changed. Public properties FacilityConfig and Kernel are now + protected, and all methods from IFacility interface are implemented explicitly. Additionally + protected Dispose method was introduced to allow inheriting classes to still be disposed. + +fix - If you were using FacilityConfig and/or Kernel properties outside of inherited classes + refactor your code accordingly not to do so. If you were overriding Dispose method change + its signature from + public override void Dispose() to + protected override void Dispose() +================================================================================================ +release 2.5.1 ================================================================================== +================================================================================================ +change - ILazyComponentLoader.Load now accepts a third argument for additional arguments. + +impact - medium +fixability - easy +revision - + +description - To allow maximum flexibility and usage with Resolve, any additional arguments + are now passed to the lazy loader. +================================================================================================ +change - LifecycleStepCollection class was removed. Instaed LifecycleConcernsCollection class + was introduced. ILifecycleConcern has now two innerited interfaces for commission and + decommission. LifecycleSteps property of ComponentModel was renamed to Lifecycle. + LifecycleStepType type was removed. + +impact - medium +fixability - easy +revision - + +description - To improve strongly typed nature and decrease probability of mistake and improve + general usability of the type LifecycleStepCollection was removed. In it place similar type + was introduced - LifecycleConcernsCollection. Instead of using untyped Objects and enums + it works with two new interfaces : ICommissionConcern and IDecommissionConcern. + +fix - have your lifecycle steps implement one of the new lifecycle interfaces. Use appropriate + overload of Add/AddFirst to add them. +================================================================================================ +change - Typed Factories will not implicitly pick default ITypedFactoryComponentSelector + registered in the container anymore + +impact - low +fixability - easy +revision - + +description - In version 2.1 where ITypedFactoryComponentSelectors were introduced, when you had + a selector registered in the container that selector would be implicitly picked for every + factory you had. Since the behavior of a selector tends to be fine grained and targetet for + a specific factories, this behavior was removed. You have to explicitly associate the selector + with a factory (using .AsFactory(f => f.SelectUsing("MySelector")); or via xml configuration) + to override selection behavior. + +fix - using either fluent API .AsFactory(f => f.SelectUsing("MySelector")), or XML configuration + selector="${MySelector}" specify the selector explicitly for each of your factories. +================================================================================================ +change - ServiceSelector delegate (used in WithService.Select calls) changed signature + +impact - low +fixability - easy +revision - + +description - To fix a bug which would occur if type implemented multiple closed version of base + open generic interface the signature of the delegate was changed from + public delegate IEnumerable ServiceSelector(Type type, Type baseType); + to + public delegate IEnumerable ServiceSelector(Type type, Type[] baseTypes); + so that multiple base types are possible (they would be closed versions of the same open + generic interface) + +fix - depending on the scenario. You would either ignore it, or wrap your current method's body + in foreach(var baseType in baseTypes) +================================================================================================ +change - moved IWindsorInstaller to Castle.MicroKernel.Registration namespace + +impact - very low +fixability - easy +revision - + +description -In order to improve developer experience when writing installers the interface + was moved so that Component and AllTypes entry types for registration are already in scope. + +fix - add using Castle.MicroKernel.Registration directive. +================================================================================================ +change - Added two new overloads to ITypeConverter.PerformConversion + +impact - very low +fixability - easy +revision - + +description - To reduce casting in the most common scenario where converted value is casted to + the type it's been converted to, ITypeConverter.PerformConversion has now generic overloads + for handling this case. + +fix - If you're implementing ITypeConverter via AbstractTypeConverter you don't have to do + anything as the base class will handle the conversion for you. Otherwise implement it like + in AbstractTypeConverter. + +================================================================================================ +change - AddCustomComponent method were moved from IKernel to IKernelInternal interface + +impact - very low +fixability - easy +revision - + +description - This method constitute internally used contract of kernel and is not intended + for external usage. As such it was moved to internal interface to declutter public + interface of IKernel. + +fix - You should not have been using this method so it should not affect you in any way. If + you did, cast the IKernel to IKernelInternal to invoke the method. + +================================================================================================ +change - IModelInterceptorsSelector.SelectInterceptors method changed its signature and how it + is used. + +impact - medium +fixability - medium +revision - + +description - To accomodate additional scenarios that were impossible (or hard to achieve + with previous design the method now has additional parameter, an array of references to + interceptors, which contains either default interceptors for the component, or interceptors + selected by previous interceptors in line). Also, Windsor will now never call + IModelInterceptorsSelector.SelectInterceptors without calling + IModelInterceptorsSelector.HasInterceptors before it, or when the latter returns false. + +fix - When adjusting your implementation remember that model's interceptors are the default value + passed as methods second parameter, so you don't need to merge them again manually (otherwise + they'll be invoked twice). + +================================================================================================ +change - CreateComponentActivator, RaiseHandlerRegistered, RaiseHandlersChanged and + RegisterHandlerForwarding methods were moved from IKernel to IKernelInternal interface + +impact - very low +fixability - easy +revision - + +description - These methods constitute internally used contract of kernel and are not intended + for external usage. As such they were moved to internal interface to declutter public + interface of IKernel. + +fix - You should not have been using these methods so it should not affect you in any way. If + you did, cast the IKernel to IKernelInternal to invoke the methods. + +================================================================================================ +change - IProxyHook interface was removed + +impact - very low +fixability - easy +revision - + +description - Since MicroKernel was merged with Windsor and now depends on DynamicProxy directly + there's no need to provide additional abstraction on top of IProxyGenerationHook. + +fix - Make types that were implementing IProxyHook to implement IProxyGenerationHook. Change all + usages of IProxyHook to IProxyGenerationHook. + +================================================================================================ +change - AddInstallerConfiguration and GetComponents methods were added to IConfigurationStore. + +impact - very low +fixability - easy +revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0 + +description - To enable installers to be exposed via configuration the interface has been + extended by addition of the two methods. + +fix - Implement the methods accordingly to your situation. + +================================================================================================ +change - Multiple types were moved between namespaces + +impact - low +fixability - trivial +revision - 3bf716cc6fc218601dab92a6dd75fe269bcb63d0 + +description - To improve the internal structure several types were moved to other namespaces. + +fix - When compilation error occurs adjust namespace imports as suggested by Visual Studio + +================================================================================================ +change - Assembly Castle.MicroKernel.dll was merged into Castle.Windsor.dll + +impact - high +fixability - easy +revision - 730b202b0ed23a6b42258a6ffd6a3e63f89501fc + +description - Since vast majority of users used Windsor, as opposed to bare MicroKernel it was + decided it didn't make sense to maintain two containers. As result of that their assemblies + were merged, as first step of integration between Windsor and MicroKernel. + +fix - In your projects remove reference to Castle.MicroKernel.dll. If you weren't using Windsor + add reference to Castle.Windsor.dll + In all places where your were referencing types from Castle.MicroKernel.dll via string + (like xml configuration when registering facilities, or section on your + web.config) update references from Castle.MicroKernel to Castle.Windsor. + +================================================================================================ +change - ComponentRegistration.Startable public method has been removed. + ComponentRegistration.StartUsingMethod public method was moved to extension method. + ComponentRegistration.StopUsingMethod public method was moved to extension method. + +impact - low +fixability - trivial +revision - 6710 + +description - StartUsingMethod/StopUsingMethod belong to StartableFacility and do not make sense + as part of generic API. Startable method was superfluous. + +fix - Remove calls to Startable(). Import namespace Castle.Facilities.Startable to use + StartUsingMethod and StopUsingMethod as extension methods. + +================================================================================================ +change - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method and + DefaultProxyFactory.CustomizeProxy protected virtual method have changed signature + +impact - very low +fixability - easy +revision - 6691 + +description - the methods now also takes IKernel and CreationContext, to be used by IReferences + to do resolution of components they reference + +fix - pass required parameters to the methods. + +================================================================================================ +change - ProxyOption's properties changed types: + Selector, from IInterceptorSelector to IReference + Hook from IProxyHook to IReference + MixIns from object[] to IEnumerable> + +impact - very low +fixability - easy +revision - 6691 + +description - the properties now use IReferences instead of live objects to allow for + resolution of their values from the container, as required in case of usage from xml. + +fix - wherever used, adjust types appropriately. To obtain actual objects, use Resolve method. diff --git a/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nupkg b/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nupkg new file mode 100644 index 0000000..1142842 Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nupkg differ diff --git a/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nuspec b/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nuspec new file mode 100644 index 0000000..c9e897a --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/Castle.Windsor.3.2.0.nuspec @@ -0,0 +1,36 @@ + + + + Castle.Windsor + 3.2.0 + Castle Windsor + Castle Project Contributors + Castle Project Contributors + http://www.apache.org/licenses/LICENSE-2.0.html + http://docs.castleproject.org/Windsor.MainPage.ashx + http://docs.castleproject.org/GetFile.aspx?File=/windsorLogo100px.png + false + Castle Windsor is best of breed, mature Inversion of Control container available for .NET and Silverlight. + + Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + + castle, windsor, inversionOfControl, DependencyInjection + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/packages/Castle.Windsor.3.2.0/Changes.txt b/lib/packages/Castle.Windsor.3.2.0/Changes.txt new file mode 100644 index 0000000..6a3c2a6 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/Changes.txt @@ -0,0 +1,956 @@ +3.2.0 (2013-02-16) +================== +- implemented IOC-375 - List duplicate registrations that are registered through convention +- implemented IOC-366 - support scoped lifestyle in XML config +- implemented IOC-365 - Provide convenience methods in the registration API to bind to nearest subgraph (in addition to existing - widest) +- implemented IOC-362 - New container diagnostic - duplicated dependencies +- implemented IOC-360 - Ability to register types based on one or several of multiple bases +- implemented IOC-358 - add ability to specify dependency on an embedded resource +- implemented IOC-357 - Provide some internal logging in Windsor to be able to see non-critical errors +- implemented IOC-355 - Add a mechanism to mark constructors as unselectable for injection, much like DoNotWireAttribute is for property injection +- implemented IOC-353 - Add Classes.FromAssemblyInThisApplication() for parity with FromAssembly class +- implemented IOC-348 - Explict sort order for convention-based configuration would be nice + +- fixed FACILITIES-160 - Wcf Facility doesn't support multiple IErrorHandlers +- fixed IOC-374 - Container.Register causing NotSupportedException in ASP .NET MVC 4. +- fixed IOC-373 - Open Generics won't resolve with LateBoundComponent Implementation +- fixed IOC-372 - Performance Counters not updated on releasing a typed factory +- fixed IOC-371 - AssemblyFilter cannot find assemblies on case-sensitive filesystems +- fixed IOC-370 - Deadlock +- fixed IOC-369 - Probably bug with generic interceptors +- fixed IOC-364 - It is impossible to use bound lifestyle with chain of components binding to innermost one +- fixed IOC-359 - Property filtering API is confusing and buggy +- fixed IOC-356 - Specifying a hook should be enough to create an implementation-less proxy +- fixed IOC-354 - Deadlock in pooled lifestyle under heavy load +- fixed IOC-334 - FacilityConfig is null in facility Init() +- fixed IOC-300 - OnCreate does not work for generic components + +3.1.0 (2012-08-05) +================== +- fixed IOC-347 - WithServiceAllInterfaces throws exception (regression) + +3.1.0 RC (2012-07-08) +================== +- Refined WCF Discovery Load Balancing approach +- Added WCF behavior to specify an IDataContractSurrogate +- Import Bindings instead of endpoints for WCF Discovery +- Improved concurrency during WCF channel failover +- Refactored WCF proxying to support all channels (not just ones based on RealProxy) +- Added additional WCF Discovery support for managed Discovery Proxies +- Exposes notifications when channels are refreshed +- Added exponential backoff client policy for WCF Facility + +- implemented IOC-343 - Add ability to specify fallback components that should never take precedence over non-fallback ones +- implemented IOC-339 - Add extension point to decide whether open generic component wants to support particular closed version +- implemented FACILITIES-159 - Add option to skip configuring log4net/nlog in LoggingFacility + +- fixed IOC-345 - When using child containers, parent components are released with child container in certain cases +- fixed IOC-342 - Should error when trying to use PerWebRequest lifestyle when linked against the client profile +- fixed IOC-341 - IHandlerFilter returning empty array ignored +- fixed IOC-338 - SerializationException thrown when using remoting within default lifetime scope (Failed to load expression host assembly. Details: Type '[...]CallContextLifetimeScope[...]' is not marked as serializable.) +- fixed IOC-336 - Failing resolution of proxied components implementing multiple generic service interfaces +- fixed IOC-332 - UsingFactoryMethod resolving a proxy without a target throws NullReferenceException instead of a better exception +- fixed IOC-331 - TypedFactoryFacility should ignore Func +- fixed IOC-328 - Hard-to-understand comment +- fixed IOC-326 - Component is Disposed before the OnDestroy delegate is invoked +- fixed IOC-325 - ParentHandlerWithChildResolver.TryResolve throws exception +- fixed IOC-241 - .NET 4 security transparency and APTCA +- fixed FACILITIES-155 - PerWcfSession throws NullReferenceException when not in a session + +3.0.0 (2011-12-13) +================== +no major changes + +3.0.0 RC 1 (2011-11-20) +================== +- implemented IOC-318 - Provide more high level API for fitering (and ignoring/requiring) properties at registration time +- implemented IOC-317 - Add ability to reference AppSettings values in XML using #{property} syntax +- implemented IOC-316 - Add attribute to specify default selector for a typed factory interface/delegate +- implemented IOC-313 - Add event to be raised by the container whenever empty collection is being resolved +- implemented IOC-312 - Add shortcut methods to API to register types from given namespace + +- fixed IOC-320 - System.ArgumentNullException at Castle.MicroKernel.Burden.Release(IReleasePolicy policy) +- fixed IOC-319 - Concurrency problem when child container is used +- fixed IOC-315 - ResolveAll should not ignore generic constraint violations on dependencies of resolved component +- fixed IOC-314 - Parsing container configuration uses the current culture +- fixed IOC-311 - OptimizeDependencyResolutionDisposable eats exceptions thrown during installation +- fixed IOC-310 - Add ability to disable performance counters + +3.0.0 beta 1 (2011-08-14) +================== +- implemented IOC-306 - Add ability to provide fine-grained filtering of properties +- implemented IOC-303 - Support proxying for components registered using factory method +- implemented IOC-302 - Support open generic components where implementation has more generic parameters than service if they can be figured out based on generic constraints +- implemented IOC-301 - Add ConfigureIf method to be used with custom predicate when configuring components registered via convention +- implemented IOC-298 - Add a method to FromAssembly that will scan all assemblies in the application for installers +- implemented IOC-292 - Add fluent registration entry point that passes through truly "all types" that is interfaces, or abstract classes can be registered too +- implemented IOC-291 - Add alias class to AllTypes that is better named, like 'Classes' +- implemented IOC-287 - Add overloads to OnCreate and OnDestroy that only take the instance and leave the container out as it is often superfluous +- implemented IOC-285 - Add abilitty to make a component the default for a service without ensuring it's the first component exposed that service registered +- implemented IOC-284 - Optimize fluent registration API for less typing +- implemented IOC-283 - Ability to create custom lifestyle attribute with custom LifestyleManager +- implemented IOC-281 - Provide out of the box support for Lazy +- implemented IOC-279 - WindsorContainer constructor taking string should accept not only file path but also other supported locations, like UNC, config section and embedded resource +- implemented IOC-277 - Add ability for components activated in a custom way to opt out of container lifetime management +- implemented IOC-275 - Exception message thrown when dependencies are missing is not always very clear and should be improved +- implemented IOC-271 - Support open generic components where implementing class has more generic parameters than the service but the missing ones can be somehow inferred +- implemented IOC-270 - Add OnDestroy method, symertical to OnCreate +- implemented IOC-269 - Windsor Performance Counters +- implemented IOC-268 - Hook that allows for filtering handlers during ResolveAll +- implemented IOC-263 - Add new debugger diagnostics - tracked objects +- implemented IOC-257 - Same as in code, specifying type for facility in XML should be enough - Id should be optional +- implemented IOC-256 - Same as in code, specifying type for component in XML should be enough - Id should be optional +- implemented IOC-255 - Specifying custom lifestyle type in XML should be enough, for it to be picked up +- implemented IOC-249 - Remove aility to remove components from the Container +- implemented IOC-246 - Remove alternative naming subsystems +- implemented IOC-243 - Remove obsolete UseSingleInterfaceProxy option + +- fixed IOC-305 - GenericListConverter throwing NotImplementedException +- fixed IOC-299 - ResolveAll ignores services for open version of generic service requested +- fixed IOC-297 - Container should throw an exception if a "primitive type" is registered as a service, since it will not be resolved +- fixed IOC-295 - registration via XML ignores service specofied in attribute +- fixed IOC-286 - Custom logger config in XML is broken +- fixed IOC-282 - Windsor should be able to register generic typed factories as open generics +- fixed IOC-280 - ResolveAll should respect services and fail hard when a component can't be resolved +- fixed IOC-278 - Optional Dependencies should also be satisfied from ILazyComponentLoaders if possible +- fixed IOC-273 - Auto register PerWebRequestLifestyleModule using PreApplicationStartMethodAttribute at runtime +- fixed IOC-267 - Register() on a System.ValueType (like an Int32 or an Enum) instance should throw an exception +- fixed IOC-265 - In certain cases of cyclic dependencies debugger view times out because of stack overflow in MismatchedLifestyleDependencyViewBuilder +- fixed IOC-262 - objects created via UsingFactoryMethod are always tracked, even if they could safely not be +- fixed IOC-260 - Generic Typed Factories no longer working in trunk +- fixed IOC-254 - Optional non-primitive .ctor parameters don't work +- fixed IOC-250 - Dispose not being called on open generic registrations +- fixed IOC-248 - Open generic components with multiple services, some of which are generic fail to properly instantiate in certain cases +- fixed IOC-247 - Make ComponentModel/IHandler expose all services for given component, instead of piggybacking them via ForwardedHandlers +- fixed IOC-245 - Proxies (for interface services) should not implicitly proxy all interfaces that the service implementation type happens to implement +- fixed IOC-240 - Castle Windsor ArrayResolver ServiceOverrides Not Respected + +- fixed FACILITIES-153 - Issue with setting the inital log level for the ConsoleLogger + +- EventWiringFacility, FactorySupportFacility and RemotingFacility are extracted to their own assemblies +- fixed bug with NullReferenceException when TypedFactoryFacility is used and disposed +- IServiceProviderEx was removed as base interface for IWindsorContainer and IKernel +- Removed the following types: ContainerAdapter, ContainerWrapper, IContainerAdapter, IContainerAdapterSite + +2.5.3 (2011-02-02) +================== +- fixed IOC-266 - Dependency of a generic service is not disposed in Windsor 2.5.x +- fixed IOC-261 - Disposing of typed-factory can throw argument null exception +- fixed IOC-254 - Optional non-primitive .ctor parameters don't work +- fixed IOC-250 - Dispose not being called on open generic registrations + +2.5.2 (2010-11-15) +================== +- implemented IOC-243 - Unseal the InterceptorAttribute class +- fixed IOC-239 - ArrayResolver attempts to instantiate an unresolvable array dependency +- fixed IOC-238 - Resolving Composite depending on a Decorator may fire up cycle detection fuse +- fixed IOC-237 - Castle Windsor : Possible bug with Startable Facility and "decorator pattern" dependencies +- fixed IOC-236 - Typed Factory Facility causes memory leak because it keeps a reference after releasing object in list 'trackedComponents' +- fixed IOC-235 - TypedFactoryFacility with inherited interfaces throws an exception +- fixed IOC-234 - StackOverflow causing inability to use debugger view when there are components with dependency cycles in the container +- fixed IOC-232 - Exception when using delegate based factories can throw when registered implicitly and used as dependencies of generic component +- fixed IOC-231 - Boilerplate methods on facilities should be hidden from IntelliSense when configuring a facility +- fixed IOC-230 - Missing Mixins/InterceptorSelectors/ProxyGenerationHooks and TypedFactoryFacility's component selectors are not detected until resolution time +- fixed IOC-229 - Qurerying for subsystem is case sensitive +- implemented IOC-228 - Chicken and egg problem when trying to inherit from DefaultDependencyResolver +- fixed IOC-227 - ResolveAll fails for generic forwarded registrations +- fixed IOC-224 - Obsolete message on some members of old obsolete API don't compile +- fixed IOC-223 - Fluent registration registers components with System.Object service when no BasedOn discriminator is provided + +2.5.1 (2010-09-21) +================== +- added "Potential lifestyle mismatches" debugger view item, that will detect and list situations where Singleton depends on Transient or PerWebRequest component (which is usually a bug) +- fixed issue where forwarding main type would create additional, superfluous handler +- WebLogger/WebLoggerFactory was removed from Castle.Core so all references to that are removed from Windsor as well +- obseleted UseSingleProxyInterface in preference over IProxyGenerationHook +- fixed IOC-220 Composite pattern with CollectionResolver should be properly supported without throwing "cycle detected" exception +- fixed IOC-218 Enable methods that take arguments as anonymous objects in Silverlight version. This works in SL, but requires [assembly: InternalsVisibleTo(Castle.Core.Internal.InternalsVisible.ToCastleCore)] +- fixed IOC-217 Enable ISupportInitialize support as lifecyclecle concern in Silverlight 4 +- implemented IOC-216 Make it possible to specify service overrides in DependsOn, either via Property, or ServiceOverride entry class +- implemented IOC-215 Hide obsolete members from IntelliSense (in basic view. By default in VB they won't be showed, but will in C# :( ) +- fixed IOC-214 Missing bracket in obsolete warning text +- implemented IOC-212 Add ability to make IProxyGenerationHooks and IInterceptoSelectors IOnBehalfAware +- fixed IOC-211 Resolve doesn't work with constructor's ref argument +- fixed IOC-210 Typed Factory Facility treats constructor dependency as non-optional if resolved as a TFF component +- fixed IOC-209 Bug in constructor selection when resolving - Windsor would pick unresolvable constructor +- reverted back (to the way it was in v2.1) conditional registration of helper components used by TypedFactoryFacility as it would cause issues when used with nested containers (see the new test and thread "Typed Factories in sub Container (differences between 2.5 and 2.1)" on users group) +- added framework information the assembly was built for to the AssemblyTitle attribute +- improved how late bound types are displayed in debugger +- fixed bug where count of potentially misconfigured components would show invalid value +- added raw handler access to default component view in debugger +- changed how status message is displayed for potentially misconfigured components so that an actual visualizer for strings can be used to view this potentially long piece of text + +2.5.0 (2010-08-21) +================== +- debugger view support has been extracted to a separate subsystem (IContainerDebuggerExtensionHost) and can be extended by users code via IContainerDebuggerExtension and IComponentDebuggerExtension +- calling IHandler.TryStart will no longer silently ignore all the exceptions. +- added CollectionResolver which is a more general version of ArrayResolver and ListResolver and supports in addition ICollection and IEnumerable +- fixed issue where dependencies would not be cleaned up when component creation failed +- fixed issue where startable component would be created twice when property dependency could not be resolved +- passing arguments to ILazyComponentLoader (see breakingchanges.txt) +- fixed bug that caused exception when proxied component and it's proxied property dependency shared interceptor + +2.5.0 beta2 (2010-07-21) +================== +- added support for selecting components based on custom attributes and their properties. See Component.HasAttribute() methods +- added WithService.DefaultInterface() to fluent API.IT matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc +- added support for CastleComponentAttribute in fluent Api. Also added helper filter method Component.IsCastleComponent +- added ability to specify interceptors selector as a service, not just as instance +- added ability to specify proxy hook in fluent API: +- indexers on IKernel are now obsolete. +- added WithAppConfig() method to logging facility to point to loging configuration in AppDomain's config file (web.config or app.config) +- Restructured lifecycle concerns - introduced ICommissionConcern and IDecommissionConcern and favors them over old enum driven style. +- Fixed how contextual arguments are handled. Null is no longer considered a valid value (That would cause an exception later on, now it's ignored). +- Changed method DeferredStart on StartableFacility. It now does not take a bool parameter. A DeferredTryStart() method was introduced instead. + +2.5.0 beta1 (2010-07-05) +================== +- Typed Factories will not implicitly pick default ITypedFactoryComponentSelector registered in the container anymore +- Obsoleted all the AddComponent* methods in favor of using Installers and fluent registration API +- ServiceSelector delegate (used in WithService.Select calls) changed signature to fix a bug: http://3.ly/eP5Q +- moved IWindsorInstaller to Castle.MicroKernel.Registration namespace +- typed factories will now obey container release policy, that is if the container does not track the component, so won't the factory. +- added helper methods to fluently configure logging facility using: container.AddFacility( f = > f.Fluent().Magic().Here() ); +- added overload for UsingFactoryMethod which exposees ComponentModel of component to the factory +- added generic overloads for ITypeConverter.PerformConversion to reduce casting. +- it is now possible to call WithService.Foo().WithService.Bar() and both services will be used. Also more methods were added: WithService.Self() and WithService.AllInterfaces() +- added simple debugger visualizer to help diagnosing misconfigured components. +- added optimized mode to StartableFacility for Single-call-to-Install scenario that won't start anything before the end of Install (at which point the container is assumed to be completely configured and all components should be there) and it will throw if it can't resolve and start the component. +- added OptimizeDependencyResolution around calls to Install +- Component.IsInNamespace and its sister methods have now overload that let you include components from subnamespaces as well. +- added ability to load assemblies from designated directory (with fair bit of optional filtering using new AssemblyFilter class). It works in three places: + - AllTypes.FromAssemblyInDirectory() - picks assemblies for registration + - FromAssembly.InDirectory() - installs installers from assemblies in the directory + - - installs installers from assemblies in directory via XML +- TypedFactoryFacility - added ability to configure factory inline: Component.For().AsFactory(f => f.SelectedWith("selectorKey")) +- Changed IModelInterceptorSelector's signature and behavior (see breakingChanges.txt for details) +- removed IProxyHook interface (see breakingchanges.txt) +- added support for specifying typed factory component selectors on a per-factory basis +- added support for using services as mixins +- added autogenerated delegate-based factories. Taking dependency on Func and calling the delegate will return IFoo from the container +- implemented IOC-ISSUE-203 - Add to fluent API scanning assemblies for IWindsorInstallers and installing them +- added fluent API for EventWiringFacility +- added ability to specify assemblies that will be scanned for types when shorthened type name is using via XML using the following syntax: + +- added ability to specify installers (IWindsorInstaller) via XML using either of the following: + + + + + installers must be public and have default constructor. +- Xml config does not require assembly qualified type name any more - specifying just type name, or typename+namespace should be enough. Works only for types in already loaded assemblies. +- ResolveAll will now resolve components that are not in Valid state when inline/dynamic arguments are provided +- TypedFactoryFacility: TypedFactoryComponent will now fallback to resolving by type if no component with designated name can be found +- fixed issue with per-web-request components not being released properly in some cases +- fixed IOC-ISSUE-199 - NamingPartsSubSystem broken when RegisterHandlerForwarding is used +- TypedFactoryFacility: added ability to resolve multiple components +- TypedFactoryFacility: added ability to put custom resolving logic +- fixed another case of IoC-168 where a component with two constructors of different parameter length couldn't be resolved when the fewer parameter constructor was not satisfied +- If and Unless functions on fluent registration API are now cumulative - it is legal to call them multiple times and all conditions will be checked. This is a minor breaking change from previous behavior where last call would win. +- added typed arguments (specified by type rather than by name). + It works for: + - call site (Resolve with Dictionary, specifying System.Type as value of key. A helper class 'Arguments' should be used for this.) + - DynamicParameters - there's an extension method Insert that should make using it nicer + - fluent Api (DependsOn(Property.ForKey().Eq("typed")) +- added 'Insert' extension method on IDictionary, specifically so simplify usage in DynamicParameters method and similar situations. It behaves like IDictionary's indexer setter +- added 'Arguments' class to carry inline arguments (typed or named) for components. It is recommended to use this class rather than Hashtable or Dictionary<> +- added strongly typed overloads for StartUsingMethod and StopUsingMethod from startable facility's registration API. It is now possible to call .StartUsingMethod(x => x.Start).StopUsingMethod(x => x.Stop) +- moved StartUsingMethod/StopUsingMethod to extension methods in StartableFacility's namespace. Startable() method was removed as superfluous. +- changed the UsingFactoryMethod (and UsingFactory) methods in fluent registration API to not rely on FactorySupportFacility. They now work even if facility is not used. +- fixed IOC-ISSUE-190 - "Resolve with argumentsAsAnonymousType overload is now case sensitive". + This fixed a regression bug introduced in v2.1, and brings the behavior back to what it was in v2.0. +- added support for specifying interceptorsSelector, proxyHook and mixins from config (see new tests for example). This also means some small impact breaking changes: + - DefaultProxyFactory.CreateProxyGenerationOptionsFrom protected method has changed signature - it now also takes IKernel and CreationContext, to be used by IReferences to do resolve (see below) + - DefaultProxyFactory.CustomizeProxy protected virtual method has changed signature, for the same reason as above + - ProxyOption's properties changed types: + Selector, from IInterceptorSelector to IReference + Hook from IProxyHook to IReference + MixIns from object[] to IEnumerable> + IReference abstraction allows to use components resolved from the container, similar to InterceptorReferences. +- Moved several types from Core: + ComponentActivatorAttribute + ComponentProxyBehaviorAttribute + CustomLifestyleAttribute + DoNotWireAttribute + InterceptorAttribute + LifestyleAttribute + PooledAttribute + TransientAttribute + GraphNode + IVertex + IRecyclable + IStartable + ComponentModel + ConstructorCandidate + ConstructorCandidateCollection + DependencyModel + DependencyModelCollection + InterceptorReference + InterceptorReferenceCollection + LifecycleStepCollection + MethodMetaModel + MethodMetaModelCollection + ParameterModel + ParameterModelCollection + PropertySet + PropertySetCollection + TopologicalSortAlgo + IOnBehalfAware + GraphSets + GraphTestCase + + +2.1.1 (2010-01-13) +================== +- Reverted factory support facility changes in r6595, r6596 and r6653 which fixed IOC-ISSUE-153, however caused other bugs + reported on the mailing list (http://groups.google.com/group/castle-project-users/browse_thread/thread/3f2b602e738a08c6?hl=en) + +2.1.0 (2010-01-12) +================== +- Moved the logging facility project into the Windsor project: + - Applied Tom Allard's patch fixing FACILITIES-93 + "Extra constructors on LoggingFacility" + - Added test case supplied by chris ortman + - Register base logger and factory when using extended logger. + - Fixed FACILITIES-77 - ILoggerFactory instance creation requires constructor with one argument + +- simplified API for attaching interceptors. + +- added support for forwarded types in XML config + +- added WithParameters method to fluent registration that enables inspecting and modifying arguments passed to Resolve method. +- BREAKING CHANGE - AbstractHandler.Resolve method is no longer abstract and instead a ResolveCore protected abstract method was added. To fix this, implementers should override ResolveCore instead of Resolve. + +- added OnCreate method (refactored from OnCreateFacility created by Tehlike) which allows to specify actions to be invoked on the component right after it is created, and before it's returned from the container + +2.0 +==== + +- Updated FactorySupportFacility and fluent registration to allow propagation + of CreationContext to factory methods + +- Fixed Burden release issue in which children were being released if the + component was not destroyed + +- Automatically configure proxy to omit target if no implementation + +- Fluent interface for factory support + +- Fixed an issue with of not considering unregistered service dependencies in arrays + +- Will not try to convert values that are already a match to the parameter type + +- XmlProcessor now properly dispose of the stream reader + +- The kernel will now check if trying to register null types + +RC 4 +==== + +- Update FromInterface Registration policy to only consider toplevel interfaces + and allow multiple services. + +- Fixed bug in AllComponentsReleasePolicy in which burden not properly handled + on dispose. + +- Applied patch from Joao Braganca to allow abstract types in DefaultComponentActivator if proxied. + +- Added additional AddFacility overrides to improve fluent configuration of facilities. + +- Moved DefaultComponentActivator check for abstract so it can be better overriden. + +- Added Attribute to Component Registration fluent interface. + +- Add ability to use Configure components based on implementation type when + using AllTypesOf. + +- Do not return forward handlers in ResolveAll since you will get duplicate services. + +- Applied patch (with mods) from Martin Nllsson to select registration interface from + containing interface. + +- Added shortcut to AllTypes to accept a where. + +- Added ability to include non-public types in registration. + +- Updated registration to support providing multiple service types. + +- Add registration support for mixins. + +- Do not allow registering components with the same name in fluent interface. + +- Applied Ayendes patch to introduce component service type forwarding to + support multiple service interfaces for a component. + Extended the Component Registration interface to support service forwarding. + +- Avoid to register abstract component via IKernel.AddComponent, now throws when trying to add instead of while resolving component + +- Removed sealed qualifier from CreationContext and made ISubDependencyResolver + methods virtual so they can be overriden. + +- Made IKernel.AddFacility fluent. + +- Added StartMethod/StartMethod to ComponentRegistration. + +- Add if/unless support for ComponentRegistration. + +- Applied Daniel Jins patch to not proxy internal interfaces. + +- Fixed IOC-126 + "PoolableLifestyleManager creates pool in constructor" + +- Fixed IOC-125 + "DefaultGenericHandler does not properly handle proxied generic components" + +- Updated AllTypes strategy to support types based on generic type definitions. + +- Updated AllTypes strategy to support multiple registrations from a single set of types. + +- Collection handlers from parent container for GetAssignableHandlers. + +- Added ability to change invocation target to DefaultProxyFactory. + +- Fixed bug with ComponentRegistration.Instance in which the instance type was not assigned as the ComponentModel implementation. + +- Replaced AllTypesOf syntax with AllTypes.Of so a non-generic version can be consistently provided. + +- Added generic AddFacility methods to kernel. + +- Added generalized configuration support to ComponentRegistration. + +- Added IWindsorInstaller interface to enhance Windsor component installation. + +- Added AllTypesOf registration stratgey to simplify custom registration + scenarios. + +- Added IRegistration interface to allow alternate registration mechanisms. + +- Fixed CORE-16 (Should be Facilities) + "The FactorySupportFacility does not create proxies if interceptors are present" + +- Added support for list service overrides using the fluent registration interface. + Added support for specifying configuration parameters using the fluent interface to allow any complex + registration scenarios. + +- Restructured the registration fluent interface to be a little more readable, + better support component registrations and prevent errors resulting from + forgetting to call ComponentRegistration.Register + +- Fixed Facilities-97 + "EventWiring Facility fails to create some components" + +- Added support for non-generic usage of fluent-interface. Needed for dynamic registrations scenarios (Binsor) + Automatically register the component between consecutive AddComponentEx (Saves a few strokes). + +- Initial version of MicroKernel/Windsor fluent interface IOC-99 + +- Applied patch from Jacob Lewallen improving the locking performance in the DefaultNamingSubsystem under high load. + +- Applied Philippe Tremblay's patch fixing IOC-94 + "Copy LifeStyle from generic interface" + +- Added support for copying interceptors defined on the geneirc interface handler. + +- Fixed IOC-80 + "StartableFacility erroneously tries to start a component before + RegisterCustomDependency can be called" + +- Added ComponentModelConverter to utilize System.ComponentModel TypeConverters + Very useful for converting things like Fonts and Colors + +- Updated DefaultComplexConverter to support interfaces and derived types + +- Fixed IOC-96 + "FactorySupport fails to create components if the factory instance is a proxy" + +- Fixed IOC-93 + "GenericListConverter does not handle service overrides properly" + +- Fixed IOC-91 + "ContextBoundObject's context is not bound when object is created by MicroKernel" + +- Fixed build from IContainerAccessor change + +- Applied Ron Grabowski's patch fixing IOC-89 + "Make DefaultKernel implement IServiceProvider" + +- Check for required Properties before determining the Handlers initial state + +- Fixed IoC-87 + "DefaultComplextConverter does not properly handle nested components" + +- Applied Lee Henson's patch fixing IOC-86 + "Additional generic AddComponent overloads" + +- Applied Ido Samuelson patch fixing IOC-85 + "IKernel to support generics to add/resolve components." + +- Refactored proxy options support. Now you can use the attribute 'marshalByRefProxy' + on the external configuration, or the ComponentProxyBehaviorAttribute + +- Fixed IOC-79 + "Kernel.GetHandlers(Type) does not consider generic handlers when satisfying the type" + +- Updated StartableFacilityTestCase to correctly demonstrate the facility and + added a unit test to demonstrate IOC-80 + +- Applied Alex Henderson's patch that makes the ComponentModel available + to the ILifestyleManager + +- Applied Adam Mills's patch fixing IOC-74 + "BinaryComponentName VisitNode null check" + +- Fixed IOC-67 + "RemoveComponent needs to unwire handlers and remove them" + +- Fixed IOC-59 + "Child component unable to correctly resolve parent service added after the component" + +- Fixed IOC-47 + "Components created by FactoryActivator have their dependencies checked" + +- Applied Marcus Widerberg's patch fixing FACILITIES-84 + "FactorySupport - Allow parameters to factory method to be set at resolvetime" + +- Applied Marcus Widerberg's patch fixing FACILITIES-82 + "Programmatic configuration for FactorySupport" + +- Reverted by Henry -> Apply patch from Sam Camp that fixes problems with Remoting Facility Sample and RecoverableComponent. + +- Updated TypedFactoryFacility to not require a target instance + when proxying. + +- Added Windsor proxy support to create proxies without targets. + +- Removed relationship between ProxyOptions and ProxyGeneration options + and moved ProxyOptions into the MicroKernel. ProxyGeneration options + are created from the ProxyOptions and will probably need to be updated + as facilities demand more proxy generation customizations. + +- Added ProxyOptions to allow facilities to easily add proxy interfaces + without having to create custom proxy factories. The ProxyOptions + are obtained via the ProxyUtil. + +- Fixed IOC-65 + "DictionaryConverter should use the alternate overload of the + PerformConversion method in order to support dictionaries that contain + custom types" + +- Moved ProxyComponentInspector from Castle.MicroKernel to here and added + support to supply ProxyGenerationOptions on a ComponentModel basis. This + provides the needed ability to provide proxy options in facilities. + +- Fixed IOC-69 - DefaultDependencyResolver issue with Service Overrides. + +- Added ComponentProxyBehaviorAttribute and ComponentProxyInspector + to control the creation of component proxies. + +- Added eval support to configuration. Currently it only supports + BaseDirectory as a content to evaluate + + + +- Added IEnvironmentInfo in an attempt to solve complex + configuration/environment issues. + +- Fixing IOC-63 - source order of constructors should not matter + +- Fixed IOC-62 + "Interceptors don't work properly on generic components" + +- Applied Norbert Wagner's patch fixing IOC-55 + "Generic Type Converters: Set default entry types to generic arguments of property type" + +- Applied Jeff Brown's patch fixing IOC-54 + "Empty component parameter values cause runtime exception during component resolution." + +- Applied patch by Bill Pierce that + +-- Introduces the WebUserControlComponentActivator + +-- Introduces the KeySearchNamingSubSystem + +-- Allows you to associate a custom component activator using + 1. componentActivatorType on component node + 2. ComponentActivatorAttribute + +-- Allows you to create and configure child containers + through the configuration, using + + + + + + + ... + + + + ... + + + + + + + +- Applied AndyD's patch fixing IOC-52 + "Remote access to generic components" + +- Fixed IOC-45 + "Proxying a component that has an interface that is extended from another interface throws an exception" + +- Applied patch by Ernst Naezer fixing IOC-37 + "Resolving with arguments in Windsor" + +- Fixed IOC-43 + "Creation of an Attribute in the Kernel that allows one property to be ignored by the dependency builder" + + Introduced DoNotWireAttribute that marks a property and prevents it + from being considered by the container + +- Changed Windsor to use DynamicProxy 2 + +- Applied patch by Adam Mills fixing IOC-42 + "ResolveServices", new method added to IKernel + +- Applied patch by Adam Mills fixing IOC-41 + "Bug Fix BinaryTreeComponentName - Assumed Lesser nodes went to left" + +- Applied patch by Adam Mills fixing IOC-40 + "Provided an Implementation for BinaryTreeComponentName.Remove" + +- Applied patch by Adam Mills fixing IOC-39 + "Fix for Null Reference when accessing empty BinaryTreeComponentName" + +- Fixed IOC-35 + "Add bootstrap section to configuration file" + +- Fixed issue where KeyAlreadyAdded exception would be throw for + components accepting two parameters of the same type, without overrides + +- Fixed IOC-36 + "Transient components with multliple constructors throw + unresolved dependency exceptions." + + Removed best candidate reference, as the kernel is dynamic it should + not cache best constructors as components can be added or removed + at any time + + Removed Points from candidates, as in a multithreaded scenario + this would lead to failures + + +- Fixed IOC-34 + "Cannot use types having their own base type as constructor argument" + + See revision r2787 + +- IOC-32, Support generic collections. + Supported collections are: ICollection, IList, List, IDictionary, Dictionary, IEnumerable + +RC 3 +==== + +- Applied patch by William C. Pierce adding PerWebRequestAttribute + +- Added setter to ReleasePolicy property + +- Applied Curtis Schlak's patch fixing IOC-30 + "Add overload to Windsor AddComponent to specify the Lifestyle" + +- Refactored AbstractHandler to use IDependencyResolver + +- Dependencies can be resolved now in three levels: + + * CreationContext (which now implements ISubDependencyResolver) + * IHandler (which now implements ISubDependencyResolver) + * IKernel which is the normal flow + +- Implemented IoC-29 using a different approach + +- Renamed IKernel.AddComponentWithProperties to AddComponentExtendedProperties. + The old method name misled the programmer about its purpose. + +- Added a PerWebRequestLifestyleManager which creates at most one instance of + an object per web request. To use it you must add the following http module + + + ... + + + + + The strong name could be omitted if not in the GAC + +- Added checks to handle cycles in dependencies graphs and avoid deadly Stack Overflow Exceptions. + +- Fixed IOC-24: "Allow user to provide an attribute which will customize how to inspect properties (PropertiesDependenciesModelInspector)" + Now users can add an 'inspectionBehavior' attribute to the component node that defines + the inspection strategy. Possible values are + + - None: No properties inspection should happen + - All: All properties will be inspected and collected (on the class and on the superclasses). + This is the default behavior + - DeclaredOnly: Only properties specified on type are checked (superclasses will be ignored) + +- Added overload to ITypeConvertor that accept the current node configuration as well as the type in CanHandleType() + +- Change: Better error message when there's an exception + setting up properties + +- Fixed IOC-25: Overrides on the configuration should be considered a non-optional dependency + + This fix changes a little the MicroKernel behavior. Now if you specify an service override + through external configuration, it will be considered a _non-optional_ dependency + +- Uri usage replaced by CustomUri which, differently than MS' Uri class, has the same + behavior on net-1.1, net-2.0 and mono + +- EventWiring Facility: now when a publisher is requested, the subscribers + are automatically started. + + The side effects are: + + - when a subscriber is requested it won't be wired automatically. + - There no much sense in having a subscriber with a lifestyle other than singleton + + I'm still evaluating this idea. Sometimes wiring only when the subscriber is requested + might make sense, but supporting both approaches is kinda hard. + + +- Applied patch by Alex Henderson adding + IWindsorContainer.RemoveChildContainer(IWindsorContainer childContainer) + and IKernel.RemoveChildKernel(IKernel kernel) + +- Applied fix by Ahmed. Now defines can be used on properties nodes like + + + + x + + + +- Now with DictionaryConverter you can specify the keyType and valueType on each entry (kudos to Ahmed) + +- xmlinterpreter will throw an exception if a property is not defined but referenced +using #{propertyName} syntax.(Patch from Ahmed) + +- XmlProcessor refactored from XmlInterpreter (kudos to Ahmed) + Now PI are also supported (don't forget to document this on the wiki) + +- Support for nested nodes on the properties. (kudos to Ahmed) + Example: + + + + + Joe + Doe + + + #{ MyComponentParams } + + + + Will result in + + + Joe + Doe + + + +- Type converter for kernel components. This allows a usage like this: + + + + + + + ${keytocomponent1} + ${keytocomponent2} + + + + +- Removed support for MethodMeta on ComponentModel. The design decision here + is to make the facilities interested on it to extend MethodMetaInspector + reading from a specific node. + +RC 2 +==== + +- AsyncInitializationContainer introduced. Special container flavor that installs the + facilities and components using a background thread. + +- Support for evaluation of expressions within the xml configuration (kudos to Ahmed) + The following "statements" are supported: + + + + + + component/facility nodes + + + + + + + + + + + + + + + + + +- Startable facility: support to specify the attribute startable=true on the configuration + +- Better error messages: now the components waiting for dependencies will recursively + report what they are waiting for. + +- Support for custom lifestyle through configuration (kudos to Bawer Dagdeviren): + + + +- Added Type converter for enums + +- Support to associate configuration nodes to methods. Usage: + + + + + + + + + + Which is equivalent to + + + + + + + + + +- IResource introduced (FileResource, AssemblyResource, ConfigResource and UncResource) + which are accessible through Uris: + + - FileResource: + file://pathtofile + (For example: file://c:\mydir\file.txt) + + - AssemblyResource: + assembly://AssemblyName/ExtendingNamespace/filename + (For example: assembly://Castle.Windsor.Tests/Configuration2/include1.xml) + + - ConfigResource: + config://sectioname + (For example: config://castle will fetch the + entry in the configuration) + + - UncResource: + \\server\file + (For example: \\mysharedplace\myconfig.xml) + +- IResource, IResourceFactory and IResourceSubSystem introduced + +- Ability to use in configuration files. Usage + + + prop1 value + prop2 value + + + + + + #{prop1} + + + + + + + + + +- Ability to use in configuration files. Usage + + Main file: + + + + + + + + include1.xml: + + + + + + + + + + + + + + + + +Beta 3 +====== + +- Bug in dependency resolution (when chained) fixed +- Better message description on exceptions related to unresolved dependencies. +- Fixed bug in AddComponentWithProperties + +Beta 2 - 10/apr/2005 +====== + +- Bug fixes + +- Configuration object model separated into interpreters and sources + +- AbstractFacility added + + +Beta 1 - 21/jan/2005 +====== + +- Changed: from #{} to ${} - way of referencing to another component + on the configuration. + +- Added: support for dictionaries, lists and arrays on the configuration file. + + + + + + value + + + + + +- Added: Component Graph (used by the Remove method and to dispose the components) + +- Fixed: Remove method + +- Fixed: Windsor: Proxy for components with (service != impl) diff --git a/lib/packages/Castle.Windsor.3.2.0/License.txt b/lib/packages/Castle.Windsor.3.2.0/License.txt new file mode 100644 index 0000000..107b1fd --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/License.txt @@ -0,0 +1,14 @@ +Copyright 2004-2013 Castle Project - http://www.castleproject.org/ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.dll new file mode 100644 index 0000000..53e1d31 Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.xml new file mode 100644 index 0000000..136f38a --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/net35/Castle.Windsor.xml @@ -0,0 +1,7812 @@ + + + + Castle.Windsor + + + + + Attempts to dynamically load a UserControl by invoking Page.LoadControl. There are two uses of this class. + 1) Add a component to the Kernel and add a VirtualPath attribute specifying the relative path of the .ascx file for the associated UserControl. (easy) + + + <component id="BasketView" + service="Castle.ShoppingCart.IBasketView, Castle.ShoppingCart" + type="Castle.ShoppingCart.BasketView, Castle.ShoppingCart" + lifestyle="transient" + virtualPath="~/Views/BasketView.ascx" + /> + + + 2) Precompile a UserControl and add the pre-compiled class to the Kernel. (hard) Has not been tested with proxies. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Initializes a new instance of the class. + + + + + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The on creation. + The on destruction. + + + + Creates the instance. + + The context. + + The arguments. + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets a value indicating whether the generated + interface proxy should inherit from . + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + PerWebRequest components are created once per Http Request + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per web request lifestyle. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Initializes a new instance of the + + class. + + 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 + + . + The class name is + + or + + is zero (0). + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Initializes a new instance of the + + class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Returns current request's scope and detaches it from the request context. + Does not throw if scope or context not present. To be used for disposing of the context. + + + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Provides explicit lifetime scoping within logical path of execution. Used for types with . + + + The scope is passed on to child threads, including ThreadPool threads. The capability is limited to single and should be used cauciously as call to may occur while the child thread is still executing, what in turn may lead to subtle threading bugs. + + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Determines if the interface proxied component should inherit + from + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by + . The value is provided as a string and will be converted to appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by . The value + is provided as a string and will be converted to appropriate type when resolving. + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Implementation of . + Do not support configuration inheritance. + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Reads the configuration from a XmlFile. Sample structure: + + <configuration> + <facilities> + <facility id="myfacility"> + + </facility> + </facilities> + + <components> + <component id="component1"> + + </component> + </components> + </configuration> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The filename. + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + Name of the environment. + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Processes the element. + + The element. + + + + + Processes the element. + + The element. + + + + + Make a shallow copy of the nodeList. + + The nodeList to be copied. + + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + + The node. + + + + + Convert and return child parameter into an XmlElement + An exception will be throw in case the child node cannot be converted + + Parent node + Node to be converted + child node as XmlElement + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Processes the specified node list. + + The node list. + The engine. + + + + Processes element attributes. + if the attribute is include will append to the element + all contents from the file. + if the attribute has a property reference the reference will be + expanded + + The element. + + + + + Properties names can contain a-zA-Z0-9_. + i.e. #!{ my_node_name } || #{ my.node.name } + spaces are trimmed + + + + + Processes the string. + + The node. + The value. + The context. + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + NOTE: since the BatchRegistrationFacility already uses an include + element we will distinguish between both by looking for the presence of an uri attribute + we should revisit this later by using xml-namespaces + + The node. + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Pendent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Initializes a new instance of the class. + + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Stupid name, but debugger views in Visual Studio display items in alphabetical order so if we want + to have that item on top its name must be alphabetically before + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Installs all the components from the App.Config file. + + + + + + Installs all the component from the xml configuration. + + The xml configuration resource. + + + + + Installs all the component from the xml configuration file. + + The xml configuration file. + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assemblies in directory specified by for types implementing , instantiates and returns so that + can install them. + + + + + + + Scans assemblies in directory specified by for types implementing , instantiates using given and + returns so that can install them. + + + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Initializes a new instance of the class using a + resource pointed to by the parameter. That may be a file, an assembly embedded resource, a UNC path or a config file section. + + Equivalent to the use of new WindsorContainer(new XmlInterpreter(configurationUri)) + + + The XML file. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.dll new file mode 100644 index 0000000..b567e6c Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.xml new file mode 100644 index 0000000..ec7dd53 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/net40-client/Castle.Windsor.xml @@ -0,0 +1,7752 @@ + + + + Castle.Windsor + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets a value indicating whether the generated + interface proxy should inherit from . + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Initializes a new instance of the class. + + + + + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Initializes a new instance of the + + class. + + 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 + + . + The class name is + + or + + is zero (0). + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Initializes a new instance of the + + class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Provides explicit lifetime scoping within logical path of execution. Used for types with . + + + The scope is passed on to child threads, including ThreadPool threads. The capability is limited to single and should be used cauciously as call to may occur while the child thread is still executing, what in turn may lead to subtle threading bugs. + + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Determines if the interface proxied component should inherit + from + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by + . The value is provided as a string and will be converted to appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by . The value + is provided as a string and will be converted to appropriate type when resolving. + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Lazily adds component for . + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Implementation of . + Do not support configuration inheritance. + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Reads the configuration from a XmlFile. Sample structure: + + <configuration> + <facilities> + <facility id="myfacility"> + + </facility> + </facilities> + + <components> + <component id="component1"> + + </component> + </components> + </configuration> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The filename. + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + Name of the environment. + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Processes the element. + + The element. + + + + + Processes the element. + + The element. + + + + + Make a shallow copy of the nodeList. + + The nodeList to be copied. + + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + + The node. + + + + + Convert and return child parameter into an XmlElement + An exception will be throw in case the child node cannot be converted + + Parent node + Node to be converted + child node as XmlElement + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Processes the specified node list. + + The node list. + The engine. + + + + Processes element attributes. + if the attribute is include will append to the element + all contents from the file. + if the attribute has a property reference the reference will be + expanded + + The element. + + + + + Properties names can contain a-zA-Z0-9_. + i.e. #!{ my_node_name } || #{ my.node.name } + spaces are trimmed + + + + + Processes the string. + + The node. + The value. + The context. + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + NOTE: since the BatchRegistrationFacility already uses an include + element we will distinguish between both by looking for the presence of an uri attribute + we should revisit this later by using xml-namespaces + + The node. + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Pendent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Initializes a new instance of the class. + + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Stupid name, but debugger views in Visual Studio display items in alphabetical order so if we want + to have that item on top its name must be alphabetically before + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Installs all the components from the App.Config file. + + + + + + Installs all the component from the xml configuration. + + The xml configuration resource. + + + + + Installs all the component from the xml configuration file. + + The xml configuration file. + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assemblies in directory specified by for types implementing , instantiates and returns so that + can install them. + + + + + + + Scans assemblies in directory specified by for types implementing , instantiates using given and + returns so that can install them. + + + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Initializes a new instance of the class using a + resource pointed to by the parameter. That may be a file, an assembly embedded resource, a UNC path or a config file section. + + Equivalent to the use of new WindsorContainer(new XmlInterpreter(configurationUri)) + + + The XML file. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.dll new file mode 100644 index 0000000..9042faf Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.xml new file mode 100644 index 0000000..5802ae7 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/net40/Castle.Windsor.xml @@ -0,0 +1,7817 @@ + + + + Castle.Windsor + + + + + Attempts to dynamically load a UserControl by invoking Page.LoadControl. There are two uses of this class. + 1) Add a component to the Kernel and add a VirtualPath attribute specifying the relative path of the .ascx file for the associated UserControl. (easy) + + + <component id="BasketView" + service="Castle.ShoppingCart.IBasketView, Castle.ShoppingCart" + type="Castle.ShoppingCart.BasketView, Castle.ShoppingCart" + lifestyle="transient" + virtualPath="~/Views/BasketView.ascx" + /> + + + 2) Precompile a UserControl and add the pre-compiled class to the Kernel. (hard) Has not been tested with proxies. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Initializes a new instance of the class. + + + + + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The on creation. + The on destruction. + + + + Creates the instance. + + The context. + + The arguments. + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets a value indicating whether the generated + interface proxy should inherit from . + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + PerWebRequest components are created once per Http Request + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per web request lifestyle. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Initializes a new instance of the + + class. + + 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 + + . + The class name is + + or + + is zero (0). + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Initializes a new instance of the + + class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Returns current request's scope and detaches it from the request context. + Does not throw if scope or context not present. To be used for disposing of the context. + + + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Provides explicit lifetime scoping within logical path of execution. Used for types with . + + + The scope is passed on to child threads, including ThreadPool threads. The capability is limited to single and should be used cauciously as call to may occur while the child thread is still executing, what in turn may lead to subtle threading bugs. + + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Determines if the interface proxied component should inherit + from + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by + . The value is provided as a string and will be converted to appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by . The value + is provided as a string and will be converted to appropriate type when resolving. + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Lazily adds component for . + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Implementation of . + Do not support configuration inheritance. + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Reads the configuration from a XmlFile. Sample structure: + + <configuration> + <facilities> + <facility id="myfacility"> + + </facility> + </facilities> + + <components> + <component id="component1"> + + </component> + </components> + </configuration> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The filename. + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + Name of the environment. + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Processes the element. + + The element. + + + + + Processes the element. + + The element. + + + + + Make a shallow copy of the nodeList. + + The nodeList to be copied. + + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + + The node. + + + + + Convert and return child parameter into an XmlElement + An exception will be throw in case the child node cannot be converted + + Parent node + Node to be converted + child node as XmlElement + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Processes the specified node list. + + The node list. + The engine. + + + + Processes element attributes. + if the attribute is include will append to the element + all contents from the file. + if the attribute has a property reference the reference will be + expanded + + The element. + + + + + Properties names can contain a-zA-Z0-9_. + i.e. #!{ my_node_name } || #{ my.node.name } + spaces are trimmed + + + + + Processes the string. + + The node. + The value. + The context. + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + NOTE: since the BatchRegistrationFacility already uses an include + element we will distinguish between both by looking for the presence of an uri attribute + we should revisit this later by using xml-namespaces + + The node. + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Pendent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Initializes a new instance of the class. + + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Stupid name, but debugger views in Visual Studio display items in alphabetical order so if we want + to have that item on top its name must be alphabetically before + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Installs all the components from the App.Config file. + + + + + + Installs all the component from the xml configuration. + + The xml configuration resource. + + + + + Installs all the component from the xml configuration file. + + The xml configuration file. + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assemblies in directory specified by for types implementing , instantiates and returns so that + can install them. + + + + + + + Scans assemblies in directory specified by for types implementing , instantiates using given and + returns so that can install them. + + + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Initializes a new instance of the class using a + resource pointed to by the parameter. That may be a file, an assembly embedded resource, a UNC path or a config file section. + + Equivalent to the use of new WindsorContainer(new XmlInterpreter(configurationUri)) + + + The XML file. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.dll new file mode 100644 index 0000000..3f39517 Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.xml new file mode 100644 index 0000000..5802ae7 --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/net45/Castle.Windsor.xml @@ -0,0 +1,7817 @@ + + + + Castle.Windsor + + + + + Attempts to dynamically load a UserControl by invoking Page.LoadControl. There are two uses of this class. + 1) Add a component to the Kernel and add a VirtualPath attribute specifying the relative path of the .ascx file for the associated UserControl. (easy) + + + <component id="BasketView" + service="Castle.ShoppingCart.IBasketView, Castle.ShoppingCart" + type="Castle.ShoppingCart.BasketView, Castle.ShoppingCart" + lifestyle="transient" + virtualPath="~/Views/BasketView.ascx" + /> + + + 2) Precompile a UserControl and add the pre-compiled class to the Kernel. (hard) Has not been tested with proxies. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Initializes a new instance of the class. + + + + + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The on creation. + The on destruction. + + + + Creates the instance. + + The context. + + The arguments. + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets a value indicating whether the generated + interface proxy should inherit from . + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + PerWebRequest components are created once per Http Request + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per web request lifestyle. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Initializes a new instance of the + + class. + + 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 + + . + The class name is + + or + + is zero (0). + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Initializes a new instance of the + + class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Returns current request's scope and detaches it from the request context. + Does not throw if scope or context not present. To be used for disposing of the context. + + + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Provides explicit lifetime scoping within logical path of execution. Used for types with . + + + The scope is passed on to child threads, including ThreadPool threads. The capability is limited to single and should be used cauciously as call to may occur while the child thread is still executing, what in turn may lead to subtle threading bugs. + + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Determines if the interface proxied component should inherit + from + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by + . The value is provided as a string and will be converted to appropriate type when resolving. + + + + + + + + Specifies that value from application configuration file's appSettings section named should be used to satisfy dependencies matched by . The value + is provided as a string and will be converted to appropriate type when resolving. + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from assemblies found in a given directory that meet additional optional restrictions. + + + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to instance per web request. + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Lazily adds component for . + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Implementation of . + Do not support configuration inheritance. + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Reads the configuration from a XmlFile. Sample structure: + + <configuration> + <facilities> + <facility id="myfacility"> + + </facility> + </facilities> + + <components> + <component id="component1"> + + </component> + </components> + </configuration> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The filename. + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + Name of the environment. + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Processes the element. + + The element. + + + + + Processes the element. + + The element. + + + + + Make a shallow copy of the nodeList. + + The nodeList to be copied. + + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + + The node. + + + + + Convert and return child parameter into an XmlElement + An exception will be throw in case the child node cannot be converted + + Parent node + Node to be converted + child node as XmlElement + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Processes the specified node list. + + The node list. + The engine. + + + + Processes element attributes. + if the attribute is include will append to the element + all contents from the file. + if the attribute has a property reference the reference will be + expanded + + The element. + + + + + Properties names can contain a-zA-Z0-9_. + i.e. #!{ my_node_name } || #{ my.node.name } + spaces are trimmed + + + + + Processes the string. + + The node. + The value. + The context. + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + NOTE: since the BatchRegistrationFacility already uses an include + element we will distinguish between both by looking for the presence of an uri attribute + we should revisit this later by using xml-namespaces + + The node. + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Pendent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Initializes a new instance of the class. + + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Stupid name, but debugger views in Visual Studio display items in alphabetical order so if we want + to have that item on top its name must be alphabetically before + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Installs all the components from the App.Config file. + + + + + + Installs all the component from the xml configuration. + + The xml configuration resource. + + + + + Installs all the component from the xml configuration file. + + The xml configuration file. + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assemblies in directory specified by for types implementing , instantiates and returns so that + can install them. + + + + + + + Scans assemblies in directory specified by for types implementing , instantiates using given and + returns so that can install them. + + + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Initializes a new instance of the class using a + resource pointed to by the parameter. That may be a file, an assembly embedded resource, a UNC path or a config file section. + + Equivalent to the use of new WindsorContainer(new XmlInterpreter(configurationUri)) + + + The XML file. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.dll new file mode 100644 index 0000000..f0c3021 Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.xml new file mode 100644 index 0000000..755994d --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/sl4/Castle.Windsor.xml @@ -0,0 +1,7384 @@ + + + + Castle.Windsor + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Initializes a new instance of the class. + + + + + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Lazily adds component for . + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Our own minimalistic implementation of TypeDescriptor class, which does not exist in Silverlight. + It exists solely to support functionality of and does not provide + full functionality of the actually thing from the full .NET framework. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.dll b/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.dll new file mode 100644 index 0000000..5344c45 Binary files /dev/null and b/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.dll differ diff --git a/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.xml b/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.xml new file mode 100644 index 0000000..755994d --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/lib/sl5/Castle.Windsor.xml @@ -0,0 +1,7384 @@ + + + + Castle.Windsor + + + + + Indicates that the target components wants instance lifetime and reuse scope to be bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + The attribute must point to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + type having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. The method will be used to pick of the component current instance should be bound to. + + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + A that represents the current . + + + + The default value of this dependency. Note that null is a valid default value. Use to determine whether default value was provided. + + + + + Gets or sets the dependency key. + + The dependency key. + + + + Specifies whether dependency has a default value (). Note that null is a valid default value. + + + + + Gets or sets whether this dependency is optional. + + true if this dependency is optional; otherwise, false . + + + + Gets the service type of the dependency. + This is the same type as or if is by ref, + then it's the element type of the reference. (in other words if dependency + is out IFoo foo this will be IFoo, while will be &IFoo); + + + + + Gets the type of the target. + + The type of the target. + + + Indicates that the target components wants a custom lifestyle. + + + + Initializes a new instance of the class. + + The custom lifestyle type. + + + + Marks as constructor to be skipped and not be selected + by the IoC container during new component activation + + + + + This attribute is useful only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Associates a custom activator with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Gets the default name for component implemented by which will be used in case when user does not provide one explicitly. + + + + + + + Specifies the proxying behavior for a component. + + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Represents a concern that will be applied to a component instance + during commission phase (right after component instance is activated). + + + + + Implementors should act on the instance in response to + a commission phase. + + The model. + The component. + + + + Represents a concern that will be applied to a component instance + during decommission phase (right before component instance is destroyed). + + + + + Implementors should act on the instance in response to + a decommission phase. + + The model. + The component. + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Used to declare that a component wants interceptors acting on it. + Out of the box recognized only if applied on component's implementation class. + + + + + Constructs the InterceptorAttribute pointing to a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to a service + + + + + + Simple type for thread safe adding/reading to/from keyed store. The difference between this and built in concurrent dictionary is that in this case adding is happening under a lock so never more than one thread will be adding at a time. + + + + + + + Returns all values and clears the dictionary + + + + + + Performs string comparison using + + + + + + + + 0 == false, 1 = =true + + + + + Signals (sets) the flag. + + true if the current thread signaled the flag, false if some other thread signaled the flag before. + + + + Marker class used to denote components that have late bound type + That is the actual type is not known exactly at the time when + is created. Those are for example components instantiated via abstract factory. + + + + + If the extended type is a Foo[] or IEnumerable{Foo} which is assignable from Foo[] this method will return typeof(Foo) + otherwise null. + + + + + + + Checkis if given is a primitive type or collection of primitive types. Value types, are considered primitive and can not be registered as components in Windsor + + + + + + + Checkis if given is a primitive type. Value types and are considered primitive and can not be registered as components in Windsor + + + + + + + Calls and if a generic constraint is violated returns null instead of throwing . + + + + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + Any other logic to create/release components. + + + + + Instances are reused within the scope provided. + + + + + Instance lifetime and reuse scope is bound to another component further up the object graph. + Good scenario for this would be unit of work bound to a presenter in a two tier MVP application. + When specified in xml a scopeRootBinderType attribute must be specified pointing to a type + having default accessible constructor and public method matching signature of Func<IHandler[], IHandler> delegate. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Specifies rules for designating settable properties on a component as dependencies, and controlling whether they are requred or not. + This is a shortcut for most common scenarios. More advanced/custom scenarios can be defined dynamically in the registration API. + + + + + Takes no action. By default that means all settable properties will be exposed as optional dependencies. + + + + + Makes all property dependencies required. + + + + + Makes all property dependencies defined at a base class/interfaces level required. + + + + + Makes all properties ignored. + + + + + Ignores all properties defined at a base class/interface level. + + + This option is particularily useful in scenarios like UI controls which in .NET UI frameworks tend to have byzantine inheritance hierarchies. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. Defaults to true. + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. Defaults to false. + + + + Builds for given call. + By default if is a collection + returns factory calling on collection's item type, + otherwise standard . + + + + + + + + + + Selects arguments to be passed to resolution pipeline. + By default passes all given + keyed by names of their corresponding parameters. + + + + + + + + Selects name of the component to resolve. + If Name is GetFoo returns "Foo", otherwise null. + + + + + + + + Selects type of the component to resolve. Uses return type. + + + + + + + + If set to true, will fallback to resolving by type, if can not find component with specified name. This property is here for backward compatibility. It is recommended not to use it. + + + + + If set to true, all methods with names like 'GetSomething' will try to resolve by name component 'something'. + + + + + Abstract implementation of . The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction + logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Implemented by which don't necessarily need dependencies from the container to activate new instances of the component. + + + + + Should return true if the activator can provide dependencies for the . + + + + + + + Should return true if the activated instances of the are managed externally to the container. That means container will not try to track the objects in . + + + + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whether they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader to register component for given and to the container at the time when it is requested + + Name of the requested component or null + Type of requested service or null + User supplied arguments or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it must return null. + + + + + Specifies default configuration for a typed factory. All Selector* properties are mutually exclusive, that is you're only meant to set one. + + + + + Specifies component to use as selector for given factory. This works like any named service override. + + + + + Specifies component to use as selector for given factory. This works like any typed service override. + + + + + Specifies type of the selector to use for given factory. The type will be instantiated using default constructor. It must implement + + + + + Exception thrown whe a component could not be activated. THis should come from the component activator. + + + + + Exception thrown when resolution process for a component was unsuccessful at some point for whatever reason. + + + + + Standard implementation of . Handles the selection of the best constructor, fills the writable properties the component exposes, run the commission and + decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. Please note however that the activator is responsible for the proxy creation when needed. + + + + + Initializes a new instance of the class. + + + + + + + + + If + true + requires release by + + . If + false + , the object has a well defined, detectable end of life (web-request end, disposal of the container etc), and will be released externally. + + + + + Represents collection of arguments used when resolving a component. + + + + + Exception thrown when component has no resolvable constructor that can be used to create an instance. + + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + Inspects missings dependencies in the container. Default implementation is used to + construct helpful message for exceptions and debugger views, but other implementations + are also possible if needed. + + + + + Summary description for DefaultHandler. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsibility of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Initializes the handler with a reference to the + kernel. + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Returns true if this handler supports + + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should return null in the case the component + can't be created for some reason. No exception should be thrown. + + + + + + Gets the model of the component being + managed by this handler. + + + + + Gets the state of the handler + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Informs the about missing dependencies. + Implementers should ignore the call if no dependencies are missing and + call back the inspector with the information required otherwise + + + + + + Dictionary of key (string) to + + + + + Constructs and initializes the handler + + + + + + Should be implemented by derived classes: disposes the component instance (or recycle it) + + + true if destroyed. + + + + Returns an instance of the component this handler is responsible for + + + when false , handler can not create valid instance and return null instead + + + + + Saves the kernel instance, subscribes to event, creates the lifestyle manager instance and computes the handler state. + + + + + + disposes the component instance (or recycle it). + + + + + + + Returns an instance of the component this handler is responsible for + + + + + + + Invoked by in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection or dictionary and changes the handler state to + + + + + + Invoked by the kernel when one of registered dependencies were satisfied by new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container is able to supply the dependencies for this handler. + + + + + + + Gets the component model. + + + + + Gets the handler state. + + + + + Lifestyle manager instance + + + + + Initializes a new instance of the + + class. + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + + + Lifestyle manager instance + + + + + Thrown when can't create proper closed version of itself due to violation of generic constraints. + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Initializes a new instance of the class. + + The message. + + + + + Initializes a new instance of the class. + + The message. + + + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + When set to true will clone . + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + Parent context + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + + Creates a new, empty instance. + + + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + + Default implementation of . This implementation is complete and also support a kernel hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by their name or the services they expose. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fit + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Event fired when registration / installation process is completed. + That is when container is about to exit method. This event is raised once regardless of how many components were registered. + If the is called by the event is raised when that method exits. + + + + + Event fired when a collection is being resolved (via or another overload) and the collection is empty. + Implementors would usually log that fact or potentially throw an exception (especially in development). + + + + + Support for kernel hierarchy + + + + + + Adds a to the kernel. + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Adds (or replaces) an + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Returns the + for the specified component name. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Returns an implementation of + for the specified name. + + + + + + + + Returns true if a component with given was registered, otherwise false. + + + + + + + Returns true if the specified service was registered + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The kernel. + + + + Releases a component instance. This allows + the kernel to execute the proper decommission + lifecycles on the component instance. + + + + + + Remove child kernel + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Graph of components and interactions. + + + + + Returns the implementation of + + + + + Returns the parent kernel + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + Extended contract of kernel, used internally. + + + + + Adds a custom made . Used by facilities. + + + + + + Constructs an implementation of for the given + + + + + + + Returns a component instance by the key + + + + + + + + + + Internal logger used by the container (not just implementation itself but also other classes too) to log information about what's happening in the container. + + + + + List of sub containers. + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + The parent kernel, if exists. + + + + + Constructs a DefaultKernel with no component proxy support. + + + + + Constructs a DefaultKernel with the specified implementation of and + + + + + + + Constructs a DefaultKernel with the specified implementation of + + + + + Starts the process of component disposal. + + + + + Return handlers for components that implements the specified service. The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Return handlers for components that implements the specified service. + + + + + + + Registers the components with the . The instances of are produced by fluent registration API. Most common entry points are + method to register a single type or (recommended in most cases) . Let the Intellisense drive you through the + fluent + API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + kernel.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + The component registrations created by , or different entry method to the fluent + API. + The kernel. + + + + Releases a component instance. This allows the kernel to execute the proper decommission lifecycles on the component instance. + + + + + + Creates an implementation of based on and invokes to initialize the newly created manager. + + + + + + + + It is the responsibility of the kernel to ensure that handler is only ever disposed once. + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + + The Component instance + + + + + Returns a component instance by the key + + Service type + Component's key + + + The Component instance + + + + + Returns the component instance by the service type + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns all the valid component instances by + the service type + + The service type + + Arguments to resolve the services + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + + Graph of components and interactions. + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the + + class. + + The message. + + + + Initializes a new instance of the + + class. + + The message. + The inner exception. + + + + Initializes a new instance of the + + class. + + + + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the + + class. + + The name. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + Exception message. + + + + Initializes a new instance of the + + class. + + The service. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Implementation of this interface allows for extension of the way + the container looks up multiple handlers. It provides the necessary + hook to allow for business logic to prioritize, filter, and sort + handlers when resolving multiple handlers. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service interface that we want to resolve + + + + Select the appropriate handlers (if any) from the list of defined handlers, + returning them in the order they should be executed. + The returned handlers should members from the array. + + The service interface that we want to resolve + The defined handlers + The selected handlers, or an empty array, or null + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + The custom initialization for the Facility. + + + It must be overridden. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + + It can be overriden. + + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Gets the where the facility is registered. + + The . + + + + Base exception to be used by facilities. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. An exception will be thrown if a startable component can't be + instantiated and started. This will help you fail fast and diagnose issues quickly. If you don't want + the exception to be thrown and you prefer the component to fail silently, use method instead. + + + It is recommended to use this method over method. + + + + + This method changes behavior of the facility. Deferred mode should be used when you + have single call to and register all your components there. + Enabling this mode will optimize the behavior of the facility so that it will wait 'till the end of + installation and only after all s were ran it will instantiate and + start all the startable components. No exception will be thrown if a startable component can't be + instantiated and started. If you'd rather fail fast and diagnose issues quickly, use method instead. + + + It is recommended to use method over this method. + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Assigns the start method for the startable. + + + The start method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the start method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + The stop method. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Assigns the stop method for the startable. + + + Method to use. something like: StartUsingMethod(s => s.Start) + + + Be sure that you first added the + to the kernel, before registering this component. + + + + + Legacy class from old impl. of the facility. Do not use it. + + + + + Legacy interceptor for old impl. of the facility. + + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Represents a single component to be resolved via Typed Factory + + + + + Resolves the component(s) from given kernel. + + + + Resolved component(s). + + + + Provides automatically generated factories on top of interfaces or delegates that + you can use to pull components out of the container without ever referencing it + explicitly. + + + + + Marks the component as typed factory. + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Name of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + Type of the component to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + The instance to be used for this factory + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Marks the component as typed factory. + + + + + + + Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + Release policy of the parent container. + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + + + + The + + + + + + the subhandler + + + + Extension point to allow the developer to use his implementation of + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds the information about a service. + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + + Abstract representation of a vertex. + + + + + The nodes that this node depends on + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranteed to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Lifetime concern that works for components that don't have their actual type determined upfront + + + + + Summary description for SupportInitializeConcern. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started and stopped by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Base implementation of + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, per-thread + and transient. + + + The responsibility of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Implementors should return the component instance based on the lifestyle semantic. + Also the instance should be set to , should be also set if needed + and if a new instance was created it should be passed on to of . + + + + + + + + Invoked when the container gets disposed. The container will not call it multiple times in multithreaded environments. + However it may be called at the same time when some out of band release mechanism is in progress. Resolving those potential + issues is the task of implementors + + + + + Provides access to held in whatever is appropriate for given scope. + + + Implementors should also ensure proper initialization of when accessed for the first time and ensure a thread safe implementation is used when scope or cache access can cause threading issues if non thread safe cache is used. + + + + + Provides access to for currently resolved component. + + Current creation context + Thrown when scope cache could not be accessed. + + + + Manages a pool of objects. + + + + + Pool implementation contract. + + + + + Implementors should release the instance or put it + on the pool + + + + + Represents persistence mechanism for instances of components that are supposed to be reused within scope managing the cache. + + + + Saves or retrieves a stored in the cache associated with the given . + + + Thrown when is null. + + + Thrown when there is already a associated with given + + value in the cache. + + The interface gives no thread safety guarantees. When the scope can be accessed from multiple threads the implementor should ensure thread safety. + + + + Delegate used by to request a new instance to be created (that would be the first instance in that scope, subsequently reused). + + Callback which should be invoken by provided delegate right after isntance gets created and before it burden gets tracked. + The purpose if this callback is to include scope in decisions regarding tracking of the instance by . + Depending on the scope implementation it may or may not provide its own end of lifetime detection mechanism. + + + + + Contribute to component model before standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Contribute to component model after standard run. + + + + + + + Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Entry point to fluent way to register, by convention, multiple types. No upfront filtering is done so literally every type will be considered. That means that usually some filtering done by user + will be required. For a most common case where non-abstract classes only are to be considered use class instead. Use static methods on the class to fluently build + registration. + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from a list of types. + The list of types. + + The corresponding + + + + Prepares to register types from an assembly. + The assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Prepares to register types from an assembly containing the type. + The type belonging to the assembly. + + The corresponding + + + + Scans current assembly and all refernced assemblies with the same first part of the name. + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for components, and other + assemblies will be ignored. + + + + Prepares to register types from an assembly. + The assembly name. + + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + + Only one instance is created first time an instance of the component is requested, and it is then reused for all subseque. + + + + + Transient components are never reused. Since their lifetime does not have any externally constrained end, they have to be manually released if resolved explicitly, to ensure proper decomission. + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Searches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for additionalInterfaces and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Searches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + Inspects the component configuration and the type looking for a definition of lifestyle type. The configuration preceeds whatever is defined in the component. + + This inspector is not guarantee to always set up an lifestyle type. If nothing could be found it wont touch the model. In this case is up to the kernel to establish a default lifestyle for + components. + + + + Searches for the lifestyle in the configuration and, if unsuccessful look for the lifestyle attribute in the implementation type. + + + + Reads the attribute "lifestyle" associated with the component configuration and tries to convert to + enum type. + + + + Check if the type expose one of the lifestyle attributes defined in Castle.Model namespace. + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable public properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Represents the collection of information and meta information collected about a component. + + + + + Dependencies the kernel must resolve + + + + + Interceptors associated + + + + + External parameters + + + + + All potential properties that can be setted by the kernel + + + + + Constructs a ComponentModel + + + + + Adds constructor dependency to this + + + + + + Adds property dependency to this + + + + + + Add service to be exposed by this + + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Dependencies are kept within constructors and properties. Others dependencies must be registered here, so the kernel (as a matter of fact the handler) can check them + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets the strategy for inspecting public properties on the components + + + + + Gets the interceptors. + + The interceptors. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Sets or returns the component key + + + + + Gets the parameter collection. + + The parameters. + + + + Gets the properties set. + + The properties. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + true if generic arguments are required; otherwise, false . + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Collection of . + + + + + Represents an reference to a Interceptor component. + + + + + Represents obtained just in time object. + + + + + + If the reference introduces dependency on a component, should return for that dependency, otherwise null. + + + + + + + Resolves object referenced by this reference, optionally using provided . + If object is resolved from the kernel, the should be used to guard + against against cyclic dependencies. + + + + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the interceptor to use. This will reference the default component (ie. one with no explicitly assigned name) implemented by given type. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Collection of + + + + Adds the specified interceptor as the first. + The interceptor. + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + The interceptor reference. + + + Adds the specified interceptor as the last. + The interceptor. + + + Inserts the specified interceptor at the specified index. + The index. + The interceptor. + + + Returns an enumerator that can iterate through a collection. + + An + that can be used to iterate through the collection. + + + + Adds the specified item. + The interceptor. + + + Gets a value indicating whether this instance has interceptors. + + true if this instance has interceptors; otherwise, false. + + + + + Represents a collection of ordered lifecycle concerns. + + + + + Returns all concerns for the commission phase + + + + + + Returns all concerns for the decommission phase + + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the config value. + + The config value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the count. + + The count. + + + + Gets the with the specified key. + + + + + + Represents a property and the respective dependency. + + TODO: remove this class and instead create PropertyDependencyModel like we do for constructors + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the dependency. + + The dependency. + + + + Gets the property. + + The property. + + + + Collection of + + + + Finds a PropertySet the by PropertyInfo. + The info. + + + + + Reference to component obtained from the container. + + + + + + Creates a new instance of referencing default component implemented by + + + + + + Creates a new instance of referencing component + + + + + + Select the appropriate interceptors based on the application specific + business logic + + + + + Determine whatever the specified has interceptors. + The selector should only return true from this method if it has determined that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add interceptors to the specified model + + + + Select the appropriate interceptor references. + The interceptor references aren't necessarily registered in the model.Intereceptors + + The model to select the interceptors for + The interceptors selected by previous selectors in the pipeline or if this is the first interceptor in the pipeline. + The interceptor for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return and the next selector in line would be executed. + If the selector wants no interceptors to be used it can either return null or empty array. + However next interceptor in line is free to override this choice. + + + + + Represents a reference to an existing object. + + + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Add the selector to the list of selectors that can affect interceptor's decisions + in the container. + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Determines whatever we need to create a proxy for this model + + + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Adds the additional mix in to integrate. + + The mix in. + + + + Equals the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Determines if the proxied component can change targets. + + + + + Gets or sets the proxy hook. + + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Determines if the proxied component uses a target. + + + + + Gets or sets the interceptor selector. + + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. Use static methods on the class to fluently build registration. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration. + B + + + + Creates a component registration for the + + Types of the service. + The component registration. + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Helper method for filtering components based on presence of an Attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>) ); + + + + + Helper method for filtering components based on presence of an Attribute and value of predicate on that attribute. + + + + + + container.Register( + Classes.FromThisAssembly() + .Where(Component.HasAttribute<UserAttribute>(u => u.SomeFlag)) ); + + + + + Determines if the component is a Castle component, that is - if it has a . + + true if the service is a Castle Component. + + This method is usually used as argument for method. + + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Inserts a new named argument with given key. If an argument for this name already exists, it will be overwritten. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Property names of the anonymous type will be used as key. + + + + + Inserts a new typed argument with given type. If an argument for this type already exists, it will be overwritten. + + + + + Inserts a set of typed arguments. Actual type of the arguments will be used as key. + + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Set a custom which creates and destroys the component. + + + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Defines additional dependencies for the component. Those can be any of , and . Use the static methods on + class to define the dependencies. See the example attached. + + The dependency. + + + Artificial example showing how to specify a service override. See other methods on class for more options. + DependsOn(Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository))); + + + + + Defines additional dependencies for the component. Those can be any combibation of , and . Use the static methods + on class to define the dependencies. See the example attached. + + The dependencies. + + + Artificial example showing how to specify three different dependencies. If any of the methods shown is not self explanatory consult its documentation. + DependsOn(Dependency.OnAppSettingsValue("connectionString", "intranet-connection-string"), + Dependency.OnComponent(typeof(IRepository), typeof(IntranetRepository)), + Dependency.OnValue("applicationName", "My Application")); + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + + The dependencies. + + + + + Allows custom dependencies to by defined dyncamically. Calling this overload is synonymous to using + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. Calling this overload is synonymous to using + + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dynamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + Use when resolving components from in order to detect cycles. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Adds as additional service to be exposed by this component. + + The forwarded type. + The component registration. + + + + Adds and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Adds , and as additional services to be exposed by this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Adds , , and as additional services to be exposed by + this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Adds as additional services to be exposed by this component. + + The types to forward. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Sets the concrete type that implements the service to . + + If not set, the class service type or first registered interface will be used as the implementation for this component. + + The type that is the implementation for the service. + Provides ability to close open generic service. Ignored when registering closed or non-generic component. + Provides ability to select if open generic component supports particular closed version of a service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. If is provided, it will be used to access scope for the component. Otherwise the default scope accessor + will be used. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per farthest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to scoped per scope determined by + + Custom algorithm for selection which component higher up the resolution stack should be the root of the lifetime scope for current component's instances. The delegate + will be invoked when current component is about to be resolved and will be passed set of handlers to components higher up the resolution stack. It ought to return one which it designages as the root + which shall scope the lifetime of current component's instance, or null + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd provide the name so that Windsor + knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + This method as opposed to should be used by tools like facilities when the name is not provided by the user, but autogenerated and user has no interest in seing this name, for + example in diagnostics reports. Set a name of this registration. This is required if you have multiple components for a given service and want to be able to resolve some specific ones. Then you'd + provide the name so that Windsor knows which one of the bunch you know. Otherwise don't bother setting the name. + + If not set, the of the will be used as the key to register the component. + + The name of this registration. + + + Names have to be globally unique in the scope of the container. + + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Stores a set of which will be invoked when the component is destroyed which means when it's released or it's lifetime scope ends. Notice that usage of this + method will cause instsances of the component to be tracked, even if they wouldn't be otherwise. + + A set of actions to be executed when the component is destroyed. + + + + Services that are already present in the container will be skipped. If no new service is left the registration will not happen at all. + + + + + + With the overwrite. + + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Sets the interceptor selector for this component. + + + + + + + Sets the interceptor selector for this component. + + + + + + + Override (some of) the services that this component needs. Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. The corresponding value is the key of an other component registered to the + kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + When set to true container will not assume ownership of this component, will not track it not apply and lifecycle concerns to it. + + + + + Uses a factory method to instantiate the component. + + Implementation type + Factory method + + + + + Registers this component with the . + + The kernel. + + + + Overrides default behavior by making the current component the default for every service it exposes. The allows user to narrow down the number of services which + should be make defaults. + + Invoked for each service exposed by given component if returns true this component will be the default for that service. + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the default for every service it exposes. + + + + When specified for multiple components for any given service the one registered after will override the one selected before. + + + + + Overrides default behavior by making the current component the fallback for every service it exposes that returns true for. That is if another, + non-fallback, component will be registered exposing any of these same services as this component, that other component will take precedence over this one, regardless of order in which they are + registered. + + Invoked for each service exposed by given component if returns true this component will be the fallback for that service. + + + + Overrides default behavior by making the current component the fallback for every service it exposes. That is if another, non-fallback, component will be registered exposing any of the same services + as this component, that other component will take precedence over this one, regardless of order in which they are registered + + + + + + Filters (settable) properties of the component's implementation type to expose in the container. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + + + Matched properties will be considered optional. Windsor will resolve the component even if it cannot provide value for those properties. If you want to make them mandatory use a different overload. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Predicate deciding whether a property is settable or not. If it returns false the property will not be added to collection + and Windsor will never try to set it. + if true the properties matched by will be considered mandatory dependencies. Windsor will only successfully resole the component if it + can provide value for all of these properties. If false Windsor will still try to provide values for these properties, but if it can't it will not stop the component from being successfully + resolved. + + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to ignore. + + Predicate finding properties to ignore. If it returns true the property will not be added to collection and Windsor + will never try to set it. + + + + Filters (settable) properties of the component's implementation type to expose in the container as mandatory dependencies + + Predicate finding properties. If it returns true the property will be added to collection and Windsor will make it + a mandatory dependency. + + + + Filters (settable) properties of the component's implementation type to expose in the container and specifies if matched properties are considered mandatory. + + Rules for deciding whether given properties are exposed in the container or ignored and if they are mandatory, that is Windsor will only successfully resole the component if + it can provide value for all of these properties. + + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set the lifestyle of this component. For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the will be used as the key to register the component. + + The name. + + + + Set proxy for this component. + + The proxy. + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Applies the configuration node. + + The configuration. + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be + converted to appropriate type when resolving. + + + + + + + + Specifies that value should be used to satisfy dependencies matched by . The value is provided as a string and will be converted to + appropriate type when resolving. + + + + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that component registered with should be used to satisfy dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that components registered with should be used to satisfy collection dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + Specifies that value should be used to satisfy dependencies matched by + + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Adds the actions to ExtendedProperties. + + + + + + Sets the lifestyle to the specified + + . + + The type. + + + + + Assigns scoped lifestyle with scope accessed via + + instances. + + + + + + + Assigns scoped lifestyle with scope accessed via + + instances if provided, or default accessor otherwise. + + + + + + Assigns scoped lifestyle with scope accessed via default accessor. + + + + + + Assign a custom lifestyle type, that implements + + . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements + + . + + The type of the custom lifestyle + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter configuration. + + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + Builds a service override using other component registered with given as value for dependency with given . + + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + Builds a service override using other component registered with given and no explicit name, as value for dependency with given . + + + + + + The property key key. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Creates a with key. + + The service override key. + The new + + + + Implicitly converts service override to dependency. This is a API trick to keep the API clean and focused. + + + + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service override value. + The new + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Builds the with key/values. + + The service override values. + The new + + + + Builds the with key/values. + + The service override values. + The new + The value type. + + + + Describes a set of components to register in the kernel. Use static methods on the class to fluently build registration. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from the assembly containing the code invoking this method. + + The corresponding + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + One or more base types. To be accepted a type must implement at least one of the given base types. + The descriptor for the type. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + If set to true, will also include types from subnamespaces. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + If set to true, will also include types from subnamespaces. + true if the component is in the same namespace. + + + + Returns the descriptor for accepting any type from given solutions. + + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + When called also non-public types will be scanned. + + + Usually it is not recommended to register non-public types in the container so think twice before using this option. + + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + Uses the type itself. + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Describes how to register a group of related types. + + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Adds another type to be accepted as base. + + The base type. + The descriptor for the type. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching component with implementation type that is + assignable to + + . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching component that satisfies supplied . + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + + + + + Allows customized configurations of each matching component that satisfies supplied and alternative configuration for the rest of components. + + Condition to satisfy + The configuration action, executed only for components for which evaluates to true . + The configuration action, executed only for components for which evaluates to false . + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Uses all interfaces implemented by the type (or its base types) as well as their base interfaces. + + + + + + Uses the base type matched on. + + + + + + Uses all interfaces that have names matched by implementation type name. + Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc + + + + + + Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface! + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Uses the type itself. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to specified one. + + + + + + Sets component lifestyle to per thread. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per explicit scope. + + + + + + Sets component lifestyle to scoped per component . + + + + + + Sets component lifestyle to scoped per nearest component on the resolution stack where implementation type is assignable to . + + + + + + Sets component lifestyle to pooled. If or are not set default values will be used. + + + + + + Sets component lifestyle to singleton. + + + + + + Sets component lifestyle to transient. + + + + + + Assigns the supplied service types. + + + + + + + Assigns the supplied service types. + + + + + + + Gets the service descriptor. + + + + + Tracks all components requiring decomission () + + + + + Policy managing lifetime of components, and in particular their release process. + + + + + Creates nested policy for scoped object tracking. + + + + + + Returns true if is being tracked by this release policy, false otherwise. + + + + + + + Releases if it's being tracked by this release policy, invoking its s and stops tracking it so that it can be claimed by the Garbage Collector. + + + + + + Asks the policy to track given object. The object will be released when a call to is made. + + + + Thrown when does NOT have its flag set. + + + + Used to obtain if present. + + + + + Creates new policy which publishes its tracking components count to + + and exposes diagnostics into + + . + + + + + + + Obtains from given if present. + + + + + + + Creates new from given . + + + + + + + No tracking of component instances are made. + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Registers a sub resolver instance + + The subresolver instance + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + kernel + The delegate used to fire the event + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Registers a sub resolver instance + + The subresolver instance + + + + Initializes this instance with the specified dependency delegate. + + kernel + The dependency delegate. + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + + true + if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + + + The dependency is checked within the + + instance for the component + + + The dependency is checked within the registered + + s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + + + + Lazily adds component for . + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + More generic alternative to and . + It supports arrays as well as any generic interface type assignable from arrays. + + + The collection instance that is provided is read only, even for interfaces like + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Gets the child containers configuration nodes. + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for installers + + + + + + + + + + + + + Adds the child container configuration. + + The key. + The config. + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for facilities + + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Implements all standard conversions. + + + + + Our own minimalistic implementation of TypeDescriptor class, which does not exist in Silverlight. + It exists solely to support functionality of and does not provide + full functionality of the actually thing from the full .NET framework. + + + + + Convert a type name to a Type instance. + + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Register a new component resolver that can take part in the decision + making about which handler(s) to resolve and in which order + + + + + Returns true if there is a component registered + for the specified name + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + Returns the associated with + the specified name. + + + + + + + Returns the associated with + the specified service. + + + + + Returns an array of associated with + the specified service. + + + + + + + Implementors should register the with all its exposes. + The handler should also be accessible via unique of its . + + + Thrown if the of 's is not unique and a handler with the same name has already been registered. + + + + Returns the number of components registered. + + + + + Map(String, IHandler) to map component names to Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service to . If there is more than a single service of the type, only the first registered services is stored in this dictionary. It serve as a fast lookup for the common case of having a single handler for a type. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the diagnostics subsystem + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Interpreter of a specific language to describe + configuration nodes in a hierarchical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Provides common methods for those who wants + to implement + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Collects all handlers for components in hosting container. + + + + + Base inteface for exposing diagnostic information about container, its components and extensions + + + + + + Collects specified diagnostic information. + + + + + + Collects all handlers for components in hosting container grouped by services they expose. + Within the service group, first one would be the default (the one obtained when callling for the service type) + + + + + Collects dependencies that are duplicated between constructors and properties. + + + + + Detects components that are not extending Windsor's infrastructure yet depend on the container which usually means they use the container as service locator + which is a bad practice and should be avoided. Consult the documentation for more details: http://j.mp/WindsorSL + + + + + Hosts different diagnostics available in the container. + + + + + Adds and makes it available as . + + + Thrown when a diagnostic for + + has already been added. + + + + + Returns diagnostic registered with or null if not present. + + + + + + + Exposes diagnostics about itself to the . + + Usually simple type containing information provided to the . + + Can be implemented by any type constituting part of container infrastructure. Should have a matching registred in the container that knows + how to find it and that prepares information from it for consumption. + + + + + Collects for the and calls if any data available. + + + pass-through context. Used by the inspector. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + Delegate to provide environment name. + + The environment name. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the assembly containing specified type for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates and returns so that + can install them. + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans current assembly and all refernced assemblies with the same first part of the name for types implementing , instantiates using given + and returns so that can install them. + + + + + Assemblies are considered to belong to the same application based on the first part of the name. For example if the method is called from within MyApp.exe and MyApp.exe references + MyApp.SuperFeatures.dll, mscorlib.dll and ThirdPartyCompany.UberControls.dll the MyApp.exe and MyApp.SuperFeatures.dll will be scanned for installers, and other + assemblies will be ignored. + + + + + Scans the specified assembly with specified name for types implementing , instantiates them and returns so that can + install them. + + + + + + Scans the specified assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans the assembly with specified name for types implementing , instantiates them and returns so that can install + them. + + + + + + Scans the assembly with specified name for types implementing , instantiates using given and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates them and returns so that + can install them. + + + + + + Scans assembly that contains code calling this method for types implementing , instantiates using given and returns so that + can install them. + + + + + + Helper class used by to filter/order and instantiate implementations + + + + + Performs custom instantiation of given + + + Default implementation uses public parameterless constructor to create the instance. + + + + + Performs custom filtering/ordering of given set of types. + + Set of concrete class types implementing interface. + Transformed . + + Default implementation simply returns types passed into it. + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Remove a child container + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this service + the service to match + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilities. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requires a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Executes Dispose on underlying + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Registers a facility within the container. + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Runs the so that they can register components in the container. For details see the documentation at http://j.mp/WindsorInstall + + + In addition to instantiating and passing every installer inline you can use helper methods on class to automatically instantiate and run your installers. + You can also use class to install components and/or run aditional installers specofied in a configuration file. + + The container. + + + container.Install(new YourInstaller1(), new YourInstaller2(), new YourInstaller3()); + + + + + container.Install(FromAssembly.This(), Configuration.FromAppConfig(), new SomeOtherInstaller()); + + + + + + Registers the components with the . The instances of are produced by fluent registration API. + Most common entry points are method to register a single type or (recommended in most cases) + . + Let the Intellisense drive you through the fluent API past those entry points. For details see the documentation at http://j.mp/WindsorApi + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>().LifestyleTransient()); + + + + + container.Register(Classes.FromThisAssembly().BasedOn<IService>().WithServiceDefaultInterfaces().Configure(c => c.LifestyleTransient())); + + + The component registrations created by , or different entry method to the fluent API. + The container. + + + + Releases a component instance + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Registers a facility within the container. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns the inner instance of the MicroKernel + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of and that uses a or as its component's source. + + + + diff --git a/lib/packages/Castle.Windsor.3.2.0/readme.txt b/lib/packages/Castle.Windsor.3.2.0/readme.txt new file mode 100644 index 0000000..cec070b --- /dev/null +++ b/lib/packages/Castle.Windsor.3.2.0/readme.txt @@ -0,0 +1,8 @@ +Thanks for downloading this Castle Windsor package. +You can find full list of changes in changes.txt + +Documentation: - http://docs.castleproject.org/Windsor.MainPage.ashx +Discusssion group: - http://groups.google.com/group/castle-project-users +StackOverflow tags: - castle-windsor, castle + +Issue tracker: - http://issues.castleproject.org/dashboard \ No newline at end of file diff --git a/lib/packages/EasyHttp.1.4.2.0/EasyHttp.1.4.2.0.nupkg b/lib/packages/EasyHttp.1.4.2.0/EasyHttp.1.4.2.0.nupkg deleted file mode 100644 index d3be0fe..0000000 Binary files a/lib/packages/EasyHttp.1.4.2.0/EasyHttp.1.4.2.0.nupkg and /dev/null differ diff --git a/lib/packages/EasyHttp.1.4.2.0/lib/net40/EasyHttp.dll b/lib/packages/EasyHttp.1.4.2.0/lib/net40/EasyHttp.dll deleted file mode 100644 index b8ae259..0000000 Binary files a/lib/packages/EasyHttp.1.4.2.0/lib/net40/EasyHttp.dll and /dev/null differ diff --git a/lib/packages/EasyHttp.1.4.2.0/lib/sl40-wp/EasyHttp.dll b/lib/packages/EasyHttp.1.4.2.0/lib/sl40-wp/EasyHttp.dll deleted file mode 100644 index b8ae259..0000000 Binary files a/lib/packages/EasyHttp.1.4.2.0/lib/sl40-wp/EasyHttp.dll and /dev/null differ diff --git a/lib/packages/EasyHttp.1.4.2.0/lib/sl40/EasyHttp.dll b/lib/packages/EasyHttp.1.4.2.0/lib/sl40/EasyHttp.dll deleted file mode 100644 index b8ae259..0000000 Binary files a/lib/packages/EasyHttp.1.4.2.0/lib/sl40/EasyHttp.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/JsonFx.2.0.1106.2610.nupkg b/lib/packages/JsonFx.2.0.1106.2610/JsonFx.2.0.1106.2610.nupkg deleted file mode 100644 index dc418e8..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/JsonFx.2.0.1106.2610.nupkg and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.dll deleted file mode 100644 index e4be6bd..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.xml deleted file mode 100644 index b6c3d40..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/net20/JsonFx.xml +++ /dev/null @@ -1,4561 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.dll deleted file mode 100644 index e5835d0..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.xml deleted file mode 100644 index cef2d98..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/net35/JsonFx.xml +++ /dev/null @@ -1,4865 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - Provides base implementation for standard deserializers - - - This partial class adds LINQ capabilities to the reader. - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - A common interface for querying data readers - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Ctor - - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Represents a query across a data source - - - - - - Ctor - - - - - - Ctor - - - - - - - Returns a string representation of the query - - - - - - Gets the query expression - - - - - Gets the query return type - - - - - Gets the underlying provider - - - - - Ctor - - - - - - - Ctor - - - - - - - Extends the query to all descendants - - - - - Extends the query to all descendants - - - - - Gets all items of the array - - - - - Gets the items of the array with indexes satisfying the - - - - - - Filters to only objects with a particular property name defined - - - - - - Filters to a lookup of only the properties which match the predicate - - - - - - Filters to only arrays - - - - - - Filters to only objects - - - - - - Filters to only simple values - - - - - - Boiler-plate implementation - - - - - - Ctor - - - - - Ctor - - - - - - - - - - - Searches for subsequences found by the expression and rehydrates into objects with the analyzer - - - - - Ctor - - - - - Ctor - - - - - - - Ctor - - - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.dll deleted file mode 100644 index f2583d3..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.xml deleted file mode 100644 index a08ebbc..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/net40/JsonFx.xml +++ /dev/null @@ -1,4877 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - Provides base implementation for standard deserializers - - - This partial class adds LINQ capabilities to the reader. - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - A common interface for querying data readers - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Ctor - - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Ctor - - - - - - Ctor - - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Represents a query across a data source - - - - - - Ctor - - - - - - Ctor - - - - - - - Returns a string representation of the query - - - - - - Gets the query expression - - - - - Gets the query return type - - - - - Gets the underlying provider - - - - - Ctor - - - - - - - Ctor - - - - - - - Extends the query to all descendants - - - - - Extends the query to all descendants - - - - - Gets all items of the array - - - - - Gets the items of the array with indexes satisfying the - - - - - - Filters to only objects with a particular property name defined - - - - - - Filters to a lookup of only the properties which match the predicate - - - - - - Filters to only arrays - - - - - - Filters to only objects - - - - - - Filters to only simple values - - - - - - Boiler-plate implementation - - - - - - Ctor - - - - - Ctor - - - - - - - - - - - Searches for subsequences found by the expression and rehydrates into objects with the analyzer - - - - - Ctor - - - - - Ctor - - - - - - - Ctor - - - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.dll deleted file mode 100644 index 5bf542a..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.xml deleted file mode 100644 index e0bf95e..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/sl35/JsonFx.xml +++ /dev/null @@ -1,4830 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - Provides base implementation for standard deserializers - - - This partial class adds LINQ capabilities to the reader. - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - A common interface for querying data readers - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Ctor - - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Represents a query across a data source - - - - - - Ctor - - - - - - Ctor - - - - - - - Returns a string representation of the query - - - - - - Gets the query expression - - - - - Gets the query return type - - - - - Gets the underlying provider - - - - - Ctor - - - - - - - Ctor - - - - - - - Extends the query to all descendants - - - - - Extends the query to all descendants - - - - - Gets all items of the array - - - - - Gets the items of the array with indexes satisfying the - - - - - - Filters to only objects with a particular property name defined - - - - - - Filters to a lookup of only the properties which match the predicate - - - - - - Filters to only arrays - - - - - - Filters to only objects - - - - - - Filters to only simple values - - - - - - Boiler-plate implementation - - - - - - Ctor - - - - - Ctor - - - - - - - - - - - Searches for subsequences found by the expression and rehydrates into objects with the analyzer - - - - - Ctor - - - - - Ctor - - - - - - - Ctor - - - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.dll deleted file mode 100644 index 4741fdf..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.xml deleted file mode 100644 index b939353..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40-wp/JsonFx.xml +++ /dev/null @@ -1,4526 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.dll deleted file mode 100644 index 31ebc9d..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.xml deleted file mode 100644 index 08dadc4..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/sl40/JsonFx.xml +++ /dev/null @@ -1,4842 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - Provides base implementation for standard deserializers - - - This partial class adds LINQ capabilities to the reader. - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - A common interface for querying data readers - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Ctor - - - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Begins a query of the given input - - the input reader - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Begins a query of the given input - - the input text - - - - Begins a query of the given input - - the input text - the expected type of the serialized data - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Ctor - - - - - - Ctor - - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Represents a query across a data source - - - - - - Ctor - - - - - - Ctor - - - - - - - Returns a string representation of the query - - - - - - Gets the query expression - - - - - Gets the query return type - - - - - Gets the underlying provider - - - - - Ctor - - - - - - - Ctor - - - - - - - Extends the query to all descendants - - - - - Extends the query to all descendants - - - - - Gets all items of the array - - - - - Gets the items of the array with indexes satisfying the - - - - - - Filters to only objects with a particular property name defined - - - - - - Filters to a lookup of only the properties which match the predicate - - - - - - Filters to only arrays - - - - - - Filters to only objects - - - - - - Filters to only simple values - - - - - - Boiler-plate implementation - - - - - - Ctor - - - - - Ctor - - - - - - - - - - - Searches for subsequences found by the expression and rehydrates into objects with the analyzer - - - - - Ctor - - - - - Ctor - - - - - - - Ctor - - - - - - diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.dll b/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.dll deleted file mode 100644 index dec53f2..0000000 Binary files a/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.dll and /dev/null differ diff --git a/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.xml b/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.xml deleted file mode 100644 index b939353..0000000 --- a/lib/packages/JsonFx.2.0.1106.2610/lib/wp40/JsonFx.xml +++ /dev/null @@ -1,4526 +0,0 @@ - - - - JsonFx - - - - - JsonFx metadata - - - - - Ctor - - - - - - Outputs BSON bytes from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the output writer - - - - - - - Emits a document (or array) to the binary stream - - - - number of bytes written - - - - Emits a single element to the binary stream - - - - - number of bytes written - - - - Emits a string value - - - - number of bytes written - - - - Emits a binary value - - - - number of bytes written - - - - Emits a code_w_s value - - - - number of bytes written - - - - Generates a sequence of tokens from BSON bytes - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the reader - - - - - - - Gets the current position of the underlying stream - - - - - BSON MD5 Datatype - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Converts MD5 to Guid - - - - - - - - Converts MD5 to Guid - - - - - - - Gets the hashcode of the underlying Guid - - - - - - BSON JavaScript Code With Scope Datatype - - - - - BSON JavaScript Code Datatype - - - - - Ctor - - - - - - Converts JavaScriptCode to string - - - - - - - - Converts JavaScriptCode to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON Symbol Datatype - - - - - Ctor - - - - - - Converts Symbol to string - - - - - - - - Converts Symbol to string - - - - - - - Gets the hashcode of the underlying string - - - - - - BSON DBPointer Datatype (Deprecated) - - - - - Immutable BSON ObjectID Datatype - - - http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype - - - - - Ctor - - 12-byte object ID - - - - Ctor - - 4-byte seconds since Unit epoch - 3-byte machine ID - 2-byte process ID - 3-byte counter - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets the time associated with this ObjectID - - - - - Gets the machine id associated with this ObjectID - - - - - Gets the process id associated with this ObjectID - - - - - Gets the counter associated with this ObjectID - - - - - Generic binary holder - - - http://api.mongodb.org/java/2.0/org/bson/types/Binary.html - - - - - Ctor - - binary type code - byte date - - - - Converts an ObjectID to a hex string - - - - - - - Converts a hex string to an ObjectID - - - - - - - Converts an ObjectID to a byte array - - - - - - - Converts a byte array to an ObjectID - - - - - - - Gets the hashcode of the underlying string - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Gets the binary type code - - - - - Gets the binary type code - - - - - Gets the byte at the given index - - - - - Gets the length of the binary data - - - - - Designates a type as being able to format itself to raw BSON bytes - - - - - Designates a type as being able to format itself to raw bytes - - - - - Writes custom format to the output using either tokens or bytes - - - - total number of bytes written - - - - Determines the corresponding BSON element type - - - - - - Generalized delegate for invoking a constructor - - - - - - - Generalized delegate for invoking a method - - the instance object - the method parameters - - - - - Generalized delegate for getting a field or property value - - - - - - - Generalized delegate for setting a field or property value - - - - - - - Consumes a sequence of tokens to produce an object graph optionally coerced to a given type - - - - - Consumes a sequence of tokens to produce a sequence of objects, optionally coerced to a given type - - token type - - - - Parses the token sequence - - - - - - - Parses the token sequence, optionally coercing the result to Type targetType - - - optional type for coercion (null if not specified) - - - - - Parses the token sequence, coercing the result to Type TResult - - optional type for coercion (null if not specified) - - - - - - Parses the token stream coercing the result to TResult (type inferred from ) - - - - an example value used solely for Type inference - - - - - Ctor - - - - - - Parses the token stream coercing the result targetType - - - - - - - Parses the token stream coercing the result to targetType - - - - - - - - Parses the token stream coercing the result to TResult - - the result target type - - - - - - Parses the token stream coercing the result to TResult (inferred from ) - - - - an example value used solely for Type inference - - - - - Common Model Language grammar helper - - - Simplifies and guides syntax, and provides a set of reusable tokens to reduce redundant token instantiations - - - - - Marks the beginning of an array - - the local name of the array - ArrayBegin Token - - - - Marks the beginning of an array - - the local name of the array - the namespace of the document - ArrayBegin Token - - - - Marks the beginning of an array - - the name of the array - ArrayBegin Token - - - - Marks the beginning of an object - - the local name of the object - ObjectBegin Token - - - - Marks the beginning of an object - - the name of the object - ObjectBegin Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the local name of the property - PropertyKey Token - - - - Marks the beginning of an object property - - the name of the property - PropertyKey Token - - - - A simple scalar value (typically serialized as a single primitive value) - - - Value Token - - - - Provides base implementation for standard deserializers - - - - - Provides base implementation for standard deserializers - - - - - A common interface for data deserializers - - - - - Deserializes a single object from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Serializes the data to the given output - - the input reader - - - - Deserializes a single object from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a single object from the given input - - the input text - - - - Deserializes a single object from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - - - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Deserializes the data from the given input - - the input reader - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input reader - - - - Deserializes the data from the given input - - the input reader - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - a value used to trigger Type inference for (e.g. for deserializing anonymous objects) - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes the data from the given input - - the input text - - - - Deserializes the data from the given input - - the input text - the expected type of the serialized data - - - - Deserializes a potentially endless sequence of objects from a stream source - - a streamed source of objects - a sequence of objects - - character stream => token stream => object stream - - - - - Gets the supported content type of the serialized data - - - - - Gets the settings used for deserialization - - - - - Ctor - - - - - - Extension methods for selecting subsequences of sequences of tokens - - - - - Determines if the sequence represents a primitive - - - - - - - Determines if the sequence represents an object - - - - - - - Determines if the root object has any properties which satisfies the name - - - - true if any properties match the predicate - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets all properties of the root object - - - - all properties for the object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Gets the properties of the root object which satisfies the - - - - matching properties for the root object - - - - Determines if the sequence represents an array - - - - - - - Gets all the items of the array - - - all items of the array - - - - Gets the items of the root array with indexes satisfying the - - - - items of the root array which statisfy the predicate - - - - ArrayItems iterator - - - - - - - - Gets all descendant values below the current root - - - - - - - Descendants iterator - - - - - - - Gets all descendant values below the current root, as well as the current root - - - - - - - DescendantsAndSelf iterator - - - - - - - Covers the sitation where a stream of sequences may be back to back - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Splices out the sequence for the next complete value (object, array, primitive) - - - - - - - Skips over the next complete value (object, array, primitive) - - - - - - - Common Model Language tokens - - - - - - - - - - - - Generates a sequence of tokens from an object graph - - - - - Generates a sequence of tokens from an object graph - - token type - - - - Generates a sequence of tokens representing the value - - - - - - - Ctor - - - - - - Generates a sequence of tokens representing the value - - - - - - - Allows a mechanism for manipulating JSON serialization - - Defines the type this filter reads/writes - - - - Partially implements an IDataFilter - - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - Defines the type this filter reads/writes - - - - Allows a mechanism for manipulating serialization - - Defines the type of token stream this filter understands - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Allows a class to act as a factory for a type via input Token<T> sequence - - input tokens - - true if value was generated - - - - Allows a class to serialize a type as Token<T> sequence - - - - true if value was consumed - - - - Defines a filter for JSON-style serialization of DateTime into ISO-8601 string - - - This is the format used by EcmaScript 5th edition Date.prototype.toJSON(...): - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf - http://www.w3.org/TR/NOTE-datetime - http://en.wikipedia.org/wiki/ISO_8601 - - NOTE: This format limits expressing DateTime as either UTC or Unspecified. Local (i.e. Server Local) is converted to UTC. - - - - - Converts a ISO-8601 string to the corresponding DateTime representation - - ISO-8601 conformant date - UTC or Unspecified DateTime - true if parsing was successful - - - - Converts a DateTime to the corresponding ISO-8601 string representation - - - ISO-8601 conformant date - - - - Determines the precision of fractional seconds. - Defaults to EcmaScript precision of milliseconds. - - - - - Defines the precision of fractional seconds in ISO-8601 dates - - - - - Defines a filter for JSON-style serialization of DateTime into an ASP.NET Ajax Date string. - - - This is the format used by Microsoft ASP.NET Ajax: - http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx - - NOTE: This format is limited to expressing DateTime at the millisecond level as UTC only. - The WCF extension of adding a timezone is ignored as this returns UTC dates only. - - - - - Converts an ASP.NET Ajax date string to the corresponding DateTime representation - - ASP.NET Ajax date string - - true if parsing was successful - - - - Converts a DateTime to the corresponding ASP.NET Ajax date string representation - - - ASP.NET Ajax date string - - - - Provides base implementation for standard serializers - - - - - Provides base implementation of standard serializers - - - - - A common interface for data serializers - - - - - Serializes the data to the given output - - the output writer - the data to be serialized - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Serializes the data to the given output - - the data to be serialized - the output writer - - - - Serializes the data to the given output - - the data to be serialized - the serialized data - - - - Gets the walker for this DataWriter - - - - - - - Gets the formatter for this DataWriter - - - - - - - Gets the content encoding for the serialized data - - - - - Gets the supported content types for the serialized data - - - - - Gets the supported file extensions for the serialized data - - - - - Gets the settings used for serialization - - - - - Ctor - - - - - - Gets a walker for JSON - - - - - - - Gets the content encoding for the serialized data - - - - - Represents an ECMAScript identifier for serialization. - - - - - Designates a type as being able to format itself to raw text - - - - - Writes custom format to the output using either tokens or text - - - - - - - Ctor - - - - - Ctor - - - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript identifier - - the identifier - identifier - - - - Verifies is a valid EcmaScript variable expression - - the identifier - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Trivial conversion method. Essentially performs a cast. - - - - - Supports conversion via System.Web.UI.PropertyConverter.ObjectFromString(Type, MemberInfo, string) - - - - - Implicit type conversion allows to be used directly as a String - - valid ECMAScript identifier - - - - - Implicit type conversion allows to be used directly with Strings - - valid ECMAScript identifier - - - - - Returns the identifier - - - - - - Compares identifiers - - - - - - - Returns the hash code for the identifier - - - - - - Gets the ECMAScript identifier represented by this instance - - - - - Formats data as full ECMAScript objects, rather than the limited set of JSON objects. - - - - - Outputs JSON text from an input stream of tokens - - - - - Outputs text from an input stream of JSON tokens - - token type - - - - Formats the token sequence to the output writer - - - - - - - Formats the token sequence as a string - - - - - - JSON serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for JSON - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Outputs JSON text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Converts an object to its string representation - - - - - - - Converts an enum to its string representation - - - - - - - Splits a bitwise-OR'd set of enums into a list. - - the enum type - the combined value - list of flag enums - - from PseudoCode.EnumHelper - - - - - Determines if a numeric value cannot be represented as IEEE-754. - - - - - http://stackoverflow.com/questions/1601646 - - - - - Gets and sets if '<' should be encoded in strings - Useful for when emitting directly into page - - - - - Ctor - - - - Defaults to encoding < chars for improved embedding within script blocks - - - - - Emits a block of script ensuring that a namespace is declared - - the output writer - the namespace to ensure - list of namespaces already emitted - determines if should emit pretty-printed - if was a namespaced identifier - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - Defaults to global matching off. - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Outputs a .NET Regex as an ECMAScript RegExp literal. - - - - - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - - - - Defines a strategy for filtering HTML tags/attributes/styles/literals - - - - - Filters tags, optionally allowing altering of tag - - tag name - if true tag should be rendered - - - - Filters attributes, optionally allowing altering of attribute value - - tag name - attribute name - attribute value - if true attribute should be rendered - - - - Filters styles, optionally allowing altering of style value - - tag name - style name - style value - if true style should be rendered - - - - Filters literals, optionally allowing replacement of literal value - - the literal value - if true should be rendered - - - - Provides a mechanism for filtering HTML streams based upon a tag taxonomy - - - - - Determines if is "void" (i.e. "empty" or "full") tag - - lowercase tag name - if is a void tag - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#sec_5.2. - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Determines if the tag is required to be closed - - lowercase tag name - if closing tag is optional - - http://www.w3.org/TR/html5/semantics.html - http://www.w3.org/TR/html401/index/elements.html - http://www.w3.org/TR/WD-html40-970917/index/elements.html - - - - - Categorizes the tag for heuristics about markup type - - lowercase tag name - the box type for a particular element - - http://www.w3.org/TR/html5/semantics.html - - - - - Defines a prioritized taxonomy of tags - - - The types are enumerated in ascending levels of risk for use in filtering HTML input - - - - - Literal text, no tags - - - - - Inline character level elements and text strings - - - Tags of this type typically do not disrupt the text flow - - - - - style elements - - - Tags of this type change the visual appearance of text - - - - - list elements - - - Tags of this type denote lists and typically change the text flow - - - - - Block-level elements - - - Tags of this type denote sections or change the text flow - - - - - Media elements - - - Tags of this type safely embed media content - - - - - Tabular elements - - - Tags of this type have a very specific structure and their own rendering model - - - - - Form elements - - - Tags of this type are used in the construction of forms for capturing user input - - - - - Script elements - - - Tags of this type represent a security risk to the containing document but must obey the browser security sandbox - - - - - Document elements - - - Tags of this type are used to construct the document itself - - - - - embedded elements - - - Tags of this type represent a large security risk to the containing document as plug-ins may circumvent the browser security sandbox - - - - - Unknown elements - - - - - Outputs markup text from an input stream of tokens - - - - - Ctor - - - - - - Resets the internal stack of elements - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Emits a valid XML local-name (i.e. encodes invalid chars including ':') - - - - - Explicitly escaping ':' to maintain compatibility with XML Namespaces. - From XML 1.0, 5th ed. http://www.w3.org/TR/xml/#sec-common-syn - Name = NameStartChar (NameChar)* - NameStartChar = ":" - | [A-Z] - | "_" - | [a-z] - | [#xC0-#xD6] - | [#xD8-#xF6] - | [#xF8-#x2FF] - | [#x370-#x37D] - | [#x37F-#x1FFF] - | [#x200C-#x200D] - | [#x2070-#x218F] - | [#x2C00-#x2FEF] - | [#x3001-#xD7FF] - | [#xF900-#xFDCF] - | [#xFDF0-#xFFFD] - | [#x10000-#xEFFFF] - NameChar = NameStartChar - | "-" - | "." - | [0-9] - | #xB7 - | [#x0300-#x036F] - | [#x203F-#x2040] - - - - - - Emits valid XML character data - - - - encodes all non-ASCII chars - - - - - Emits valid XML attribute character data - - - - encodes all non-ASCII chars - - - - Gets and sets a value indicating if should emit canonical form - - - http://www.w3.org/TR/xml-c14n - - - - - Gets and sets a value indicating how should emit empty attributes - - - - - Gets and sets a value indicating if should encode text chars above the ASCII range - - - This option can help when the output is being embedded within an unknown encoding - - - - - HTML-style empty attributes do not emit a quoted string - - - http://www.w3.org/TR/html5/syntax.html#attributes-0 - - - - - XHTML-style empty attributes repeat the attribute name as its value - - - http://www.w3.org/TR/xhtml-media-types/#C_10 - http://www.w3.org/TR/xhtml1/#C_10 - http://www.w3.org/TR/html5/the-xhtml-syntax.html - - - - - XML-style empty attributes emit an empty quoted string - - - http://www.w3.org/TR/xml/#sec-starttags - - - - - Generates a sequence of tokens from a generalized model of markup text (e.g. HTML, XML, JBST, ASPX/ASCX, ASP, JSP, PHP, etc.) - - - This generates a stream of tokens like StAX (Streaming API for XML) - Unlike XML, this follows a more permissive markup format with automatic recovery most similar to HTML5. - - - - - Generates a sequence of tokens from a sequence of characters - - token type - - - - Tokenizes the input sequence into tokens - - - - - - - Tokenizes the input sequence into tokens - - - - - - - Gets the current column of the underlying input character sequence - - - Tokenizers not tracking columns should return -1. - - - - - Gets the current line of the underlying input character sequence - - - Tokenizers not tracking lines should return -1. - - - - - Gets the current position of the underlying input character sequence - - - Tokenizers not tracking index should return -1. - - - - - Decodes HTML-style entities into special characters - - - the entity text - - TODO: validate against HTML5-style entities - http://www.w3.org/TR/html5/tokenization.html#consume-a-character-reference - - - - - Decodes most known named entities - - - - - - - Checks for element start char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Checks for element name char - - - - - http://www.w3.org/TR/xml/#sec-common-syn - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets and sets if should attempt to auto-balance mismatched tags. - - - - - Gets and sets if should unwrap comments inside . - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets and sets a set of tags which should not have their content parsed. - - - For example, in HTML this would include "script" and "style" tags. - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Ctor - - - - - Renders Common Model Tokens into a semantic HTML representation of the data structure - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - input token type - output token type - - - - Transforms the token sequence from to - - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - StringBuilder-like implementation built like List<char> - - - - - Ctor - - - - - Ctor - - - - - - Resets the buffer to an empty state - - - - - Appends a single char to the buffer - - - - - - - Appends a string value to the buffer - - - - - - - Copies the buffer value into a - - - - - - Gets the number of characters in the buffer - - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - Ctor - - - - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence of - - - - - Supports forward-only iteration over an input sequence - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered sequence chunk - - - - - - Determines if the sequence has completed. - - - - - Gets a value indicating if is currently capturing a sequence - - - - - Gets the number of items currently chunked - - - - - Factory method for generic streams - - - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Determines if the input sequence has reached the end - - - - - Ctor - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a list with ability to capture a subsequence - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Gets the number of characters currently chunked - - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a text input tracking line/column/position - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and writes the buffered text chunk into the provided StringBuilder - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Supports a simple iteration over a string tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - Releases all resources used - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Supports a simple iteration over a TextReader tracking line/column/position - - - - - Ctor - - - - - - Begins chunking at the current index - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - - Ends chunking at the current index and returns the buffered text chunk - - - - - Returns but does not remove the item at the front of the sequence. - - - - - - Returns and removes the item at the front of the sequence. - - - - - - Deferred execution of iterator - - - - - Calculates index, line, and column statistics - - - - - - - Releases all resources used by the underlying reader - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - Gets the number of characters currently chunked - - - - - Gets a value indicating if the is currently chunking - - - - - Determines if the input sequence has reached the end - - - - - Formal language of tokens and symbols for JSON - - - - - Designates a property or field to not be serialized. - - - - - Specifies the naming to use for a property or field when serializing - - - - - Ctor - - - - - Ctor - - - - - - Gets and sets the name to be used in serialization - - - - - JSON deserializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the supported content type of the serialized data - - - - - Generates a sequence of tokens from JSON text - - - - - Gets a token sequence from the scanner stream - - - - - - - Scans for the longest valid EcmaScript identifier - - identifier - - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - - IdentifierName = - IdentifierStart | IdentifierName IdentifierPart - IdentifierStart = - Letter | '$' | '_' - IdentifierPart = - IdentifierStart | Digit - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the string - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - It is an error for the next token to be a value delim - - - - - Forbidden but differentiates between empty array/object and just written - - - - - It is an error for the next token to NOT be a value delim - - - - - Specifies the name of the property which specifies if member should be serialized. - - - These properties can be marked private/protected/internal and it will still be recognized - - - - - Ctor - - the name of the property which controls serialization for this member - - - - Ctor - - the name of the property which controls serialization for this member - - - - Gets and sets the name of the property which - specifies if member should be serialized - - - - - Transforms markup tokens into Common Model tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Determines how whitespace should be handled - - - - - Transforms Common Model tokens into markup tokens using the (lossless) JsonML model - - - JsonML Grammer: http://jsonml.org - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Controls name resolution for IDataReader / IDataWriter using JsonNameAttribute / JsonIgnoreAttribute / JsonPropertySpecifiedAttribute - - - This is the default strategy from JsonFx v1.0 - - - - - Controls name resolution for IDataReader / IDataWriter using plain old CLR object (POCO) names - - - - - Controls name resolution for IDataReader / IDataWriter - - - Provides an extensibility point to control member naming and visibility at a very granular level. - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Determines if the property or field should not be serialized. - - - - - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful when default values need not be serialized. - - - - - Gets the serialized name for the member. - - - - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute - - This is useful for excluding serialization of default values. - - - - - Gets the serialized name for the member. - - - - - - - Determines whitespace handling - - - - - Removes insignificant whitespace - - - - - Keep all whitespace - - - - - Condenses all whitespace to single spaces - - - - - Designates a type as being able to format itself to raw JSON text. - - - - - Ctor - - - - - Ctor - - - - - Gets and sets the starting delimiter - - - - - Gets and sets the ending delimiter - - - - - Gets and sets the context - - - - - Formal language of tokens and symbols for markup - - - - - Any of a number of unparsed tags which typically contain specialized processing instructions - - - The name of the token is the beginning and ending delimiters as a format string (not including the '<' or '>') - Includes the following types: - - "<!--", "-->" XML/HTML/SGML comment - "<!", ">" XML/SGML declaration (e.g. DOCTYPE or server-side includes) - - "<?=", "?>" PHP expression - "<?", "?>" PHP code block /XML processing instruction (e.g. the XML declaration) - - "<%--", "--%>" ASP/PSP/JSP-style code comment - "<%@", "%>" ASP/PSP/JSP directive - "<%=", "%>" ASP/PSP/JSP/JBST expression - "<%!", "%>" JSP/JBST declaration - "<%#", "%>" ASP.NET/JBST databind expression - "<%$", "%>" ASP.NET/JBST extension - "<%", "%>" ASP code block / JSP scriptlet / PSP code block - - - - - tokens - - - - - - - - - - - Maintains scope chain for namespace prefix mappings - - - - - Adds a new scope to the chain - - - - - - Gets the last scope off the chain - - - - - Gets and removes the last scope off the chain - - - - - - Finds the namespace URI for a given prefix within the curren scope chain - - - - - - - Finds the prefix for a given namespace URI within the curren scope chain - - - - - - - Checks if the matching begin tag exists on the stack - - - - - - Resets the internal state of the scope chain. - - - - - Looks up the prefix for the given namespace - - - - null if namespace is empty and no default prefix found - - - - Represents a scope boundary within a prefix scope chain - - - - - Returns if this scope boundary contains a mapping for a particular prefix - - - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular namespace - - - if this scope boundary contains a mapping for a particular namespace - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the namespace URI if one was found. - - - the resolved namespace URI - if this scope boundary contains a mapping for a particular prefix - - - - Returns if this scope boundary contains a mapping for a particular prefix - setting the prefix if one was found. - - - the resolved prefix - if this scope boundary contains a mapping for a particular prefix - - - - Gets and sets the tagname associated with this scope boundary - - - - - Gets and sets mappings between prefix and namespace URIs - - - - - - - Provides lookup capabilities for providers - - - - - Parses HTTP headers for Media-Types - - HTTP Accept header - HTTP Content-Type header - sequence of Media-Types - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - - - - - - - - - - - - Controls name resolution for IDataReader / IDataWriter using convention-based name mapping - - - Converts standard .NET PascalCase naming convention into the specified naming convention. - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the serialized name for the member. - - - - - - - Splits a multi-word name assuming standard .NET PascalCase conventions. - - - - - http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx - http://msdn.microsoft.com/en-us/library/141e06ef.aspx - http://msdn.microsoft.com/en-us/library/xzf533w0.aspx - - - - - - Ctor - - - - - - - - Ctor - - - - - - - Represents a property or document name, and a corresponding namespace URI (or empty string). - Analogous to XML "expanded name": http://www.w3.org/TR/REC-xml-names/#dt-expname - - - Namespaces must be a URI, but local-name can be any non-null string. - It is up to formatters to determine how to properly represent names which are invalid for the format. - - - - - local-name - - - - - alias for the namespace - - - - - namespace - - - - - Determines if name should be treated like an attribute - - - - - Ctor - - a CLR Type used to generate the local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - - This constructor implicitly delcares the namespace to be empty. - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Ctor - - any string is a valid local-name - an absolute URI string, or null - determines if name should be an attribute name - thrown if is null - thrown if is an invalid absolute URI - - The namespace field follows XML recommendation of absolute URIs. - Relative URIs are officially deprecated for namespaces: http://www.w3.org/2000/09/xppa - - - - - Gets the local-name for a Type - - - - - - - Gets the prefixed name or simply local-name if is not a fully qualified name - - true to generate a prefix if the prefix is empty but not the namespace - - - - - Gets the namespaced name or simply local-name if is not a fully qualified name - - - - - - Compares two values and returns an indication of their relative sort order. - - - - - Performs ordering according to XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace nodes are sorted lexicographically by local name (the default namespace node, if one exists, has no local name and is therefore lexicographically least)." - "An element's attribute nodes are sorted lexicographically with namespace URI as the primary key and local name as the secondary key (an empty namespace URI is lexicographically least)." - - - - - Determines if this is an empty DataName - - - - - Indicates a graph cycle was detected during serialization - - - - - Indicates an error occurred during serialization - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the type of cycle which caused the error - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in a null value - - - - - Graph cycles are detected with a reference tracking, any repeated reference results in an error - - - - - Graph cycles are detected with a maximum depth count, exceeding depth results in an error - - - - - Detects graph cycles by tracking graph depth - - - - - Defines an interface for detecting graph cycles - - - - - Begins tracking of the reference - - - true if graph cycle was detected - - - - Ends tracking of the reference - - - true if tracking was successfully completed - - - - Ctor - - - - - - Increments the depth - - - true if MaxDepth has not been exceeded - - - - Increments the depth - - - - - - Detects cycles by detecting duplicates in the a set of object references - - - - - Adds a reference to the set - - - true if object already existed within set - - - - Removes a reference from the set - - - - - - Controls deserialization settings for IDataReader - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets if ValueTypes can accept values of null - - - If this is true and a ValueType T is assigned the value of null, - it will receive the value of default(T). - Setting this to false, throws an exception if null is - specified for a ValueType member. - - - - - Gets and sets if should verify that stream is empty after deserialzing each object - - - Setting to true allows reading a JSON stream inside other structures (e.g. JavaScript) - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Controls the serialization settings for IDataWriter - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Ctor - - - - - - Gets and sets what to do when graph cycles (repeated references) are encounted - - - - - Gets and sets the maximum nesting depth - - - Depth is a fast and easy safegaurd against detecting graph cycles but may produce false positives - - - - - Gets and sets if output will be formatted for human reading. - - - - - Gets and sets the string to use for indentation - - - - - Gets and sets the line terminator string - - - - - Gets manager of name resolution for IDataReader - - - - - Gets the custom filters - - - - - Indicates an error occurred during deserialization - - - - - Ctor - - - - - - - Ctor - - - - - - - - - Ctor - - - - - - - - Ctor - - - - - - - - Helper method which converts the index into Line and Column numbers - - - - - - - - Gets the character column in the stream where the error occurred - - - - - Gets the character position in the stream where the error occurred - - - - - Gets the character line in the stream where the error occurred - - - - - Indicates an error occurred during token consumption - - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the token in the sequence where the error occurred - - - - - Indicates an error occurred during type coercion - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Provides lookup capabilities for finding matching IDataReader - - - - - Ctor - - inject with all possible readers - - - - Finds an IDataReader by content-type header - - - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Provides lookup capabilities for finding an IDataWriter - - - - - Ctor - - inject with all possible writers - - - - Controls name resolution for IDataReader / IDataWriter by using pluggable delegate callbacks - - - - - Gets and sets the implementation for ignoring properties - - - - - Gets and sets the implementation for ignoring fields - - - - - Gets and sets the implementation for ignoring properties by value - - - - - Gets and sets the implementation for naming members - - - - - Gets and sets the implementation for sorting members - - - - - Controls name resolution for IDataReader / IDataWriter by combining an ordered sequence of any other strategies - - - Each strategy is invoked in order, the first to respond wins. - - - - - Ctor - - ordered sequence of strategies - - - - Ctor - - ordered sequence of strategies - - - - Gets a value indicating if the property is to be serialized. - - - - true if any strategy specifies should be ignored - - - - Gets a value indicating if the field is to be serialized. - - - true if any strategy specifies should be ignored - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - true if any strategy specifies this should be ignored - - - - Gets the serialized name for the member. - - - - custom name if any strategy specifies one, otherwise null - - - - Allows a strategy to perform a custom sort order to outputted members - - - - - A common usage is to ensure that Attributes sort first - - - - - Controls name resolution for IDataReader / IDataWriter using DataContract attributes - - - http://msdn.microsoft.com/en-us/library/kd1dc9w5.aspx - - - - - CCtor - - - - - Gets a value indicating if the property is to be serialized. - - - - - - - - Gets a value indicating if the field is to be serialized. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - Gets the serialized name for the member. - - - - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - - - - - The original member info - - - - - The original member name - - - - - The member data name - - - - - The member type - - - - - The getter method - - - - - The setter method - - - - - The logic for determining if a value is ignored - - - - - Determines if map name is alternate (i.e. only used for deserialization) - - - - - Ctor - - MemberMap to clone - alternate name - - - - Ctor - - - - - - - - Ctor - - - - - - - - Ctor - - - - - Gets a sequence of the available factory arguments - - - - - Gets the factory associated with the given argument type - - - - - - - Cache of name resolution mappings for IDataReader / IDataWriter - - - - - Ctor - - - - - - Gets the serialized name of the class - - - - - - - Removes any cached member mappings. - - - - - Builds a mapping of member name to field/property - - - - - - Represents a single immutable token in an input sequence - - - - - The type of the token - - - - - The name of the token - - - - - The value of the token - - - - - Ctor - - - - - - Ctor - - - - - - - Ctor - - - - - - - Ctor - - - - - - - Returns a string that represents the current token. - - - - - - Gets the value of the token as a string - - - - - - Converts a value to a string giving opportunity for IConvertible, IFormattable - - - - - - - Converts token to a token of a different type - - - token with same values and different type - - - - Type Coercion Utility - - - - - Ctor - - - - - - - Ctor - - - - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Instantiates a new instance of objectType. - - - objectType instance - - - - Helper method to set value of a member. - - - - - - - - - - Coerces the object value to Type - - - - - - - - Coerces the object value to Type of - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Populates the properties of an object with the dictionary values. - - - - - - - - Coerces an sequence of items into an array of Type elementType - - - - - - - - Finds a suitable concrete class for common collection interface types - - - - - - - Allows specific IDictionary<string, TVal> to deserialize as TVal - - IDictionary<string, TVal> Type - TVal Type - - - - Returns a common type which can hold previous values and the new value - - - - - - - - Determines if type can be assigned a null value. - - - - - - - Gets the attribute T for the given value. - - - Attribute Type - true if defined - - - - Gets the attribute of Type for the given value. - - - true if defined - - - - Gets the attribute T for the given value. - - - Attribute Type - requested attribute or not if not defined - - - - Gets the attribute of Type for the given value. - - - requested attribute or not if not defined - - - - Character Utility - - - These are either simpler definitions of character classes (e.g. letter is [a-zA-Z]), - or they implement platform-agnositic checks (read: "Silverlight workarounds"). - - - - - Checks if string is null, empty or entirely made up of whitespace - - - - - Essentially the same as String.IsNullOrWhiteSpace from .NET 4.0 - with a simplfied view of whitespace. - - - - - Checks if character is line ending, tab or space - - - - - - - - - - - - - - Checks if character matches [A-Za-z] - - - - - - - Checks if character matches [0-9] - - - - - - - Checks if character matches [0-9A-Fa-f] - - - - - - - Gets a 4-bit number as a hex digit - - 0-15 - - - - - Formats a number as a hex digit - - - - - - - Converts the value of a UTF-16 encoded character or surrogate pair at a specified - position in a string into a Unicode code point. - - - - - - - - Converts the specified Unicode code point into a UTF-16 encoded string. - - - - - - - XML serializer - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets a tokenizer for XML - - - - - - Gets the supported content type for the serialized data - - - - - Transforms markup tokens into Common Model tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - - Ctor - - - - - Ctor - - - - - - Gets a token sequence from the string - - - - - - - Gets a token sequence from the TextReader - - - - - - - Gets a token sequence from the XmlReader - - - - - - - Gets the total number of characters read from the input - - - - - Gets the total number of lines read from the input - - - - - Gets the current position within the input - - - - - XML serializer - - - - - Ctor - - - - - Ctor - - - - - - Ctor - - - - - - - Gets the formatter for XML - - - - - - - Gets the supported content type for the serialized data - - - - - Gets the supported file extension for the serialized data - - - - - Transforms Common Model tokens into markup tokens using an XML-data model - - - - - Ctor - - - - - - Consumes a sequence of tokens and produces a token sequence of a different type - - - - - Formats the token sequence to the output - - - - - - - Outputs XML text from an input stream of tokens - - - - - Ctor - - - - - - Formats the token sequence as a string - - - - - - Formats the token sequence to the writer - - - - - - - Formats the token sequence to the writer - - - - - - - Wraps an XmlWriter as a TextWriter - - - - - Ctor - - - - - - Gets the underlying XmlWriter - - - - - Controls name resolution for IDataReader / IDataWriter using attributes and conventions similar to XmlSerializer semantics - - - http://msdn.microsoft.com/en-us/library/83y7df3e.aspx - - - - - Gets a value indicating if the property is to be serialized. - - - - - default implementation is must be read/write properties, or immutable - - - - Gets a value indicating if the field is to be serialized. - - - - default implementation is must be public, non-readonly field - - - - Gets a delegate which determines if the property or field should not be serialized based upon its value. - - - if has a value equivalent to the DefaultValueAttribute or has a property named XXXSpecified which determines visibility - - This is useful when default values need not be serialized. - Under these situations XmlSerializer ignores properties based upon value: - - DefaultValue: http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx - - Specified Properies: http://msdn.microsoft.com/en-us/library/bb402199.aspx - - ShouldSerialize Methods: http://msdn.microsoft.com/en-us/library/53b8022e.aspx - - - - - Gets the serialized name for the member. - - - - - - - Sorts members to ensure proper document order where attributes precede all child elements. - - - - - Performs the first stage of XML Canonicalization document order http://www.w3.org/TR/xml-c14n#DocumentOrder - "An element's namespace and attribute nodes have a document order position greater than the element but less than any child node of the element." - - - - - Generates delegates for getting/setting properties and field and invoking constructors - - - - - Creates a field getter delegate for the specified property or field - - PropertyInfo or FieldInfo - GetterDelegate for property or field, null otherwise - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified property or field - - PropertyInfo or FieldInfo - SetterDelegate for property or field, null otherwise - - - - Creates a property getter delegate for the specified property - - - GetterDelegate if property CanRead, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a property setter delegate for the specified property - - - GetterDelegate if property CanWrite, otherwise null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field getter delegate for the specified field - - - GetterDelegate which returns field unless is enum in which will return enum value - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a field setter delegate for the specified field - - - SetterDelegate unless field IsInitOnly then returns null - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a proxy delegate accepting a target instance and corresponding arguments - - method to proxy - ProxyDelegate or null if cannot be invoked - - Note: use with caution this method will expose private and protected methods without safety checks. - - - - - Creates a default constructor delegate - - type to be created - FactoryDelegate or null if default constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - - Creates a constructor delegate accepting specified arguments - - type to be created - constructor arguments type list - FactoryDelegate or null if constructor not found - - Note: use with caution this method will expose private and protected constructors without safety checks. - - - - diff --git a/lib/packages/ncalc.1.3.8/lib/NCalc.dll b/lib/packages/ncalc.1.3.8/lib/NCalc.dll new file mode 100644 index 0000000..e1c52cd Binary files /dev/null and b/lib/packages/ncalc.1.3.8/lib/NCalc.dll differ diff --git a/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nupkg b/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nupkg new file mode 100644 index 0000000..7edca96 Binary files /dev/null and b/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nupkg differ diff --git a/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nuspec b/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nuspec new file mode 100644 index 0000000..42555b1 --- /dev/null +++ b/lib/packages/ncalc.1.3.8/ncalc.1.3.8.nuspec @@ -0,0 +1,18 @@ + + + + ncalc + 1.3.8 + ncalc + sebastienros + sebastienros + http://ncalc.codeplex.com/license + http://ncalc.codeplex.com/ + false + NCalc is a mathematical expressions evaluator in .NET. NCalc can parse any expression and evaluate the result, including static or dynamic parameters and custom functions. + NCalc is a mathematical expressions evaluator in .NET. NCalc can parse any expression and evaluate the result, including static or dynamic parameters and custom functions. + + + + + \ No newline at end of file diff --git a/lib/packages/repositories.config b/lib/packages/repositories.config index addb907..c7b5e34 100644 --- a/lib/packages/repositories.config +++ b/lib/packages/repositories.config @@ -1,5 +1,9 @@  - + + + + + \ No newline at end of file diff --git a/lib/skype4com/Skype4COM.chm b/lib/skype4com/Skype4COM.chm new file mode 100644 index 0000000..81f1271 Binary files /dev/null and b/lib/skype4com/Skype4COM.chm differ diff --git a/lib/skype4com/Skype4COM.dll b/lib/skype4com/Skype4COM.dll new file mode 100644 index 0000000..4e02d99 Binary files /dev/null and b/lib/skype4com/Skype4COM.dll differ diff --git a/lib/skype4com/Skype4COM.msm b/lib/skype4com/Skype4COM.msm new file mode 100644 index 0000000..fc23401 Binary files /dev/null and b/lib/skype4com/Skype4COM.msm differ diff --git a/src/AutoBot.Agents.Calculator/AutoBot.Agents.Calculator.csproj b/src/AutoBot.Agents.Calculator/AutoBot.Agents.Calculator.csproj new file mode 100644 index 0000000..bc9ee5d --- /dev/null +++ b/src/AutoBot.Agents.Calculator/AutoBot.Agents.Calculator.csproj @@ -0,0 +1,66 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {E5C817FB-875E-44F0-AA74-461745077D09} + Library + Properties + AutoBot.Agents.Calculator + AutoBot.Agents.Calculator + v4.0 + + + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\..\lib\packages\ncalc.1.3.8\lib\NCalc.dll + + + + + + + + + + + + + + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + AutoBot.Core + + + + + \ No newline at end of file diff --git a/src/AutoBot.Agents.Calculator/CalculatorAgent.cs b/src/AutoBot.Agents.Calculator/CalculatorAgent.cs new file mode 100644 index 0000000..8b743df --- /dev/null +++ b/src/AutoBot.Agents.Calculator/CalculatorAgent.cs @@ -0,0 +1,23 @@ +using AutoBot.Core.Chat; +using AutoBot.Core.Engine; +using NCalc; + +namespace AutoBot.Agents.Calculator +{ + + public sealed class CalculatorAgent : IAutoBotAgent + { + + #region IAutoBotAgent Interface + + public void ProcessMessage(IChatMessage message, IChatResponse response) + { + var expression = new Expression(message.CommandText); + response.Write(expression.Evaluate().ToString()); + } + + #endregion + + } + +} diff --git a/src/AutoBot.Agents.Calculator/Properties/AssemblyInfo.cs b/src/AutoBot.Agents.Calculator/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8c320b4 --- /dev/null +++ b/src/AutoBot.Agents.Calculator/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AutoBot.Agents.Calculator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoBot.Agents.Calculator")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("09303a01-dcde-4aab-a20b-1bc33f79f1e3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AutoBot.Agents.Calculator/packages.config b/src/AutoBot.Agents.Calculator/packages.config new file mode 100644 index 0000000..d442652 --- /dev/null +++ b/src/AutoBot.Agents.Calculator/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/AutoBot.Agents.PowerShell/AutoBot.Agents.PowerShell.csproj b/src/AutoBot.Agents.PowerShell/AutoBot.Agents.PowerShell.csproj new file mode 100644 index 0000000..e0cec22 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/AutoBot.Agents.PowerShell.csproj @@ -0,0 +1,80 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {AAAF23E6-595E-4A09-8498-D8B58A8917AA} + Library + Properties + AutoBot.Agents.PowerShell + AutoBot.Agents.PowerShell + v4.0 + + + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\..\lib\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll + + + + + + + + + + + + + + + + + Always + + + Always + + + Always + + + + + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + AutoBot.Core + + + + + \ No newline at end of file diff --git a/src/AutoBot.Agents.PowerShell/Host/Host.cs b/src/AutoBot.Agents.PowerShell/Host/Host.cs new file mode 100644 index 0000000..32527dd --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Host/Host.cs @@ -0,0 +1,186 @@ +using System; +using System.Management.Automation.Host; +using System.Threading; +using Castle.Core.Logging; + +namespace AutoBot.Agents.PowerShell.Host +{ + + /// + /// Contains the functionality for creating a custom host. A host provides + /// communications between the Windows PowerShell engine and the user. + /// + /// + /// See http://msdn.microsoft.com/en-gb/library/system.management.automation.host.pshost%28v=vs.85%29.aspx + /// See http://msdn.microsoft.com/en-gb/library/windows/desktop/ee706559%28v=vs.85%29.aspx + /// + internal sealed class Host : PSHost + { + + #region Fields + + private Guid _instanceId; + private PSHostUserInterface _ui; + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the Host class. + /// + /// + public Host(ILogger logger) + : base() + { + this.Logger = logger; + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + #endregion + + #region PSHost Members + + /// + /// Gets the culture that the runspace uses to set the current culture on new threads. + /// + public override System.Globalization.CultureInfo CurrentCulture + { + get + { + return Thread.CurrentThread.CurrentCulture; + } + } + + /// + /// Gets the UI culture that the runspace and cmdlets use to load resources. + /// + public override System.Globalization.CultureInfo CurrentUICulture + { + get + { + return Thread.CurrentThread.CurrentUICulture; + } + } + + /// + /// Instructs the host to interrupt the currently running pipeline and start a new nested input loop. + /// + /// + public override void EnterNestedPrompt() + { + throw new NotImplementedException(); + } + + /// + /// Instructs the host to exit the currently running input loop. + /// + /// + public override void ExitNestedPrompt() + { + throw new NotImplementedException(); + } + + /// + /// Gets the identifier that uniquely identifies this instance of the host. + /// + public override Guid InstanceId + { + get + { + if (_instanceId == Guid.Empty) + { + _instanceId = Guid.NewGuid(); + } + return _instanceId; + } + } + + /// + /// Gets the user friendly name of the host. + /// + public override string Name + { + get + { + return "AutoBotHost"; + } + } + + /// + /// Notifies the host that the Windows PowerShell runtime is about to execute a legacy + /// command-line application. A legacy application is defined as a console-mode + /// executable that can perform any of the following operations: read from stdin, + /// write to stdout, write to stderr, or use any of the Windows console functions. + /// + /// + public override void NotifyBeginApplication() + { + throw new NotImplementedException(); + } + + /// + /// Notifies the host that the Windows PowerShell engine has completed the execution + /// of a legacy command. A legacy application is defined as a console-mode executable + /// that can perform any of the following operations: read from stdin, write to stdout, + /// write to stderr, or use any of the Windows console functions. + /// + /// + public override void NotifyEndApplication() + { + throw new NotImplementedException(); + } + + /// + /// Requests to end the current runspace. The Windows PowerShell engine calls this + /// method to request that the host application shut down and terminate the host + /// root runspace. + /// + /// + /// + public override void SetShouldExit(int exitCode) + { + throw new NotImplementedException(); + } + + /// + /// Gets the implementation of the PSHostUserInterface class that defines user + /// interaction for this host. + /// + public override PSHostUserInterface UI + { + get + { + if (_ui == null) + { + _ui = new UserInterface(this.Logger); + } + return _ui; + } + } + + /// + /// Gets the version number of the host. + /// + public override Version Version + { + get + { + return new Version(1, 0); + } + } + + #endregion + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/Host/RawUserInterface.cs b/src/AutoBot.Agents.PowerShell/Host/RawUserInterface.cs new file mode 100644 index 0000000..d2efa5b --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Host/RawUserInterface.cs @@ -0,0 +1,257 @@ +using System; +using System.Management.Automation.Host; + +namespace AutoBot.Agents.PowerShell.Host +{ + + /// + /// Defines the low-level host functionality, such as read and write actions, + /// that a host application can implement to support cmdlets that perform + /// character-mode interaction with the user. + /// + /// + /// See http://msdn.microsoft.com/en-us/library/windows/desktop/system.management.automation.host.pshostrawuserinterface%28v=vs.85%29.aspx + /// + internal sealed class RawUserInterface : PSHostRawUserInterface + { + + #region Constructors + + public RawUserInterface() + { + this.BufferSize = new Size(80, 25); + this.BackgroundColor = ConsoleColor.Black; + this.ForegroundColor = ConsoleColor.White; + this.CursorPosition = new Coordinates(0, 0); + this.CursorSize = 1; + } + + #endregion + + #region PSHostRawUserInterface Members + + /// + /// Gets or sets the background color of the displayed text. + /// + public override ConsoleColor BackgroundColor + { + get; + set; + } + + /// + /// Gets or sets the current size of the screen buffer. + /// + public override Size BufferSize + { + get; + set; + } + + /// + /// Gets or sets the cursor position in the screen buffer. + /// + public override Coordinates CursorPosition + { + get; + set; + } + + /// + /// Gets or sets the cursor size as a percentage of a buffer cell. + /// + public override int CursorSize + { + get; + set; + } + + /// + /// When overridden in a derived class, flushes the input buffer. + /// All input currently in the buffer is discarded. + /// + /// + public override void FlushInputBuffer() + { + throw new NotImplementedException(); + } + + /// + /// Gets or sets the foreground color of the displayed text. + /// + public override ConsoleColor ForegroundColor + { + get; + set; + } + + /// + /// Retrieves a rectangular region of the screen buffer. + /// + /// + /// + /// + public override BufferCell[,] GetBufferContents(Rectangle rectangle) + { + throw new NotImplementedException(); + } + + /// + /// Gets a value that indicates whether the user has pressed a key. + /// + public override bool KeyAvailable + { + get + { + throw new NotImplementedException(); + } + } + + /// + /// Determines the number of buffer cells occupied by a character. + /// + /// + /// + public override int LengthInBufferCells(char source) + { + return base.LengthInBufferCells(source); + } + + /// + /// Determines the number of buffer cells occupied by a string. + /// + /// + /// + public override int LengthInBufferCells(string source) + { + return base.LengthInBufferCells(source); + } + + /// + /// Determines the number of buffer cells occupied by a portion of a specified string. + /// + /// + /// + /// + public override int LengthInBufferCells(string source, int offset) + { + return base.LengthInBufferCells(source, offset); + } + + /// + /// Gets the dimensions of the largest window that could be rendered in + /// the current display, if the buffer was at the least that large. + /// + public override Size MaxPhysicalWindowSize + { + get + { + throw new NotImplementedException(); + } + } + + /// + /// Gets the size of the largest window possible for the current buffer, + /// current font, and current display hardware. + /// + public override Size MaxWindowSize + { + get + { + throw new NotImplementedException(); + } + } + + /// + /// Reads a key from the keyboard device. The variants of this method can + /// read the key with or without required keystroke options. + /// + /// + /// + public override KeyInfo ReadKey(ReadKeyOptions options) + { + throw new NotImplementedException(); + } + + /// + /// Crops a region of the screen buffer. + /// + /// + /// + /// + /// + public override void ScrollBufferContents(Rectangle source, Coordinates destination, Rectangle clip, BufferCell fill) + { + throw new NotImplementedException(); + } + + /// + /// Copies an array of buffer cells into the screen buffer at a specified location. + /// + /// + /// + public override void SetBufferContents(Rectangle rectangle, BufferCell fill) + { + throw new NotImplementedException(); + } + + /// + /// Copies a given character, foreground color, and background color to a region of the screen buffer. + /// + /// + /// + public override void SetBufferContents(Coordinates origin, BufferCell[,] contents) + { + throw new NotImplementedException(); + } + + /// + /// Gets or sets the position, in characters, of the view window relative to the screen buffer. + /// + public override Coordinates WindowPosition + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + /// + /// Gets or sets the current size of the view window. + /// + public override Size WindowSize + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + /// + /// Gets or sets the title bar text of the current view window. + /// + public override string WindowTitle + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + #endregion + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/Host/UserInterface.cs b/src/AutoBot.Agents.PowerShell/Host/UserInterface.cs new file mode 100644 index 0000000..2f924f9 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Host/UserInterface.cs @@ -0,0 +1,278 @@ +using System.Globalization; +using Castle.Core.Logging; +using System; +using System.Collections.Generic; +using System.Management.Automation; +using System.Management.Automation.Host; + +namespace AutoBot.Agents.PowerShell.Host +{ + + /// + /// Defines the custom host functionality that is used to perform dialog-oriented + /// and line-oriented interaction, such as writing to, prompting for, and reading + /// from user input. + /// + /// + /// See http://msdn.microsoft.com/en-us/library/windows/desktop/system.management.automation.host.pshostuserinterface%28v=vs.85%29.aspx + /// + internal sealed class UserInterface : PSHostUserInterface + { + + #region Fields + + private PSHostRawUserInterface _rawUi; + + #endregion + + #region Events + + public delegate void WriteHandler(object sender, string value); + public event WriteHandler OnWrite; + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the UserInterface class. + /// + /// + public UserInterface(ILogger logger) + { + this.Logger = logger; + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + #endregion + + #region PSHostUserInterface Members + + #region Input Methods + + // it's a bot - we don't support input + + /// + /// Prompts the user for input. + /// + /// + /// + /// + /// + /// + public override Dictionary Prompt(string caption, string message, System.Collections.ObjectModel.Collection descriptions) + { + throw new NotImplementedException(); + } + + /// + /// Provides a set of choices that enable the user to choose a + /// single option from a set of options. + /// + /// + /// + /// + /// + /// + /// + public override int PromptForChoice(string caption, string message, System.Collections.ObjectModel.Collection choices, int defaultChoice) + { + throw new NotImplementedException(); + } + + /// + /// Prompts the user for credentials for a specified target. The variants of this + /// method can be used to prompt the user with a specified prompt window caption, + /// prompt message, user and target name, credential types allowed to be returned, + /// and user interface (UI) behavior options. + /// + /// + /// + /// + /// + /// + /// + /// + /// + public override PSCredential PromptForCredential(string caption, string message, string userName, string targetName, PSCredentialTypes allowedCredentialTypes, PSCredentialUIOptions options) + { + throw new NotImplementedException(); + } + + /// + /// Prompts the user for credentials for a specified target. The variants of this + /// method can be used to prompt the user with a specified prompt window caption, + /// prompt message, user and target name, credential types allowed to be returned, + /// and user interface (UI) behavior options. + /// + /// + /// + /// + /// + /// + public override PSCredential PromptForCredential(string caption, string message, string userName, string targetName) + { + throw new NotImplementedException(); + } + + /// + /// Gets an instance of the PSHostRawUserInterface interface that is implemented + /// by the host application. This interface defines the low-level functionality + /// of the custom host. + /// + public override PSHostRawUserInterface RawUI + { + get + { + if (_rawUi == null) + { + _rawUi = new RawUserInterface(); + } + return _rawUi; + } + } + + /// + /// Reads characters that are entered by the user until a newline (carriage return) + /// character is encountered. + /// + /// + /// + public override string ReadLine() + { + throw new NotImplementedException(); + } + + /// + /// Reads characters entered by the user until a newline (carriage return) character + /// is encountered and returns the characters as a secure string. + /// + /// + /// + public override System.Security.SecureString ReadLineAsSecureString() + { + throw new NotImplementedException(); + } + + #endregion + + #region Output Methods + + /// + /// Writes characters to the output display of the host. + /// + /// + public override void Write(string value) + { + this.Write(this.RawUI.ForegroundColor, this.RawUI.BackgroundColor, value); + } + + /// + /// Writes characters to the output display of the host + /// with possible foreground and background colors. + /// + /// + /// + /// + public override void Write(ConsoleColor foregroundColor, ConsoleColor backgroundColor, string value) + { + this.Logger.Info(value); + this.OnWrite(this, value); + } + + /// + /// Writes characters to the output display of the host. + /// + public override void WriteLine() + { + this.WriteLine(string.Empty); + } + + /// + /// + /// + /// + public override void WriteLine(string value) + { + this.WriteLine(this.RawUI.ForegroundColor, this.RawUI.BackgroundColor, value); + } + + /// + /// Writes characters to the output display of the host + /// with possible foreground and background colors. + /// + /// + /// + /// + public override void WriteLine(ConsoleColor foregroundColor, ConsoleColor backgroundColor, string value) + { + this.Logger.Info(value); + this.OnWrite(this, value); + } + + /// + /// Writes a progress report to be displayed to the user. + /// + /// + /// + public override void WriteProgress(long sourceId, ProgressRecord record) + { + this.Write(record.PercentComplete.ToString(CultureInfo.InvariantCulture)); + } + + #endregion + + #region Logging Methods + + /// + /// Displays a debug message to the user. + /// + /// + public override void WriteDebugLine(string message) + { + this.Logger.Debug(message); + } + + /// + /// Writes a line to the error display of the host. + /// + /// + public override void WriteErrorLine(string value) + { + this.Logger.Error(value); + } + + /// + /// Writes a verbose line to be displayed to the user. + /// + /// + public override void WriteVerboseLine(string message) + { + this.Logger.Info(message); + } + + /// + /// Writes a warning line to be displayed to the user. + /// + /// + public override void WriteWarningLine(string message) + { + this.Logger.Warn(message); + } + + #endregion + + #endregion + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/PowerShellAgent.cs b/src/AutoBot.Agents.PowerShell/PowerShellAgent.cs new file mode 100644 index 0000000..9ac3a7a --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/PowerShellAgent.cs @@ -0,0 +1,185 @@ +using AutoBot.Agents.PowerShell.Host; +using AutoBot.Core.Chat; +using AutoBot.Core.Engine; +using Castle.Core.Logging; +using System; +using System.Collections; +using System.IO; +using System.Management.Automation; +using System.Management.Automation.Runspaces; +using System.Reflection; + +namespace AutoBot.Agents.PowerShell +{ + + public sealed class PowerShellAgent : IAutoBotAgent + { + + #region Constructors + + public PowerShellAgent(ILogger logger) + { + // copy the parameters locally so the OnWrite handler can access them + this.Logger = logger; + this.ScriptPath = this.GetScriptPath(); + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + private string ScriptPath + { + get; + set; + } + + #endregion + + #region IAutoBotAgent Interface + + public void ProcessMessage(IChatMessage message, IChatResponse response) + { + // parse the command so we know what to run + var command = this.ParseCommand(message.CommandText); + if (command == null) + { + response.Write("Erk! Not sure what to say to that."); + return; + } + // check the script module exists + var modulePath = this.GetFullModulePath(command.Command); + if (!File.Exists(modulePath)) + { + response.Write("Unknown command! Try \"@autobot Get-Help\" instead."); + return; + } + // initialise the host + var host = new Host.Host(this.Logger); + // add a handler for OnWrite events so we can bubble them up to the chat session + var hostUi = (host.UI as UserInterface); + if (hostUi != null) + { + hostUi.OnWrite += (sender, value) => response.Write(value); + } + // create a new initial state with the script module loaded + var state = InitialSessionState.CreateDefault(); + state.ImportPSModule(new string[] { modulePath }); + // run the script inside the host + using (var runspace = RunspaceFactory.CreateRunspace(host, state)) + { + runspace.Open(); + using (var invoker = new RunspaceInvoke(runspace)) + { + try + { + // execute the PowerShell function with the same name as the module + IList errors; + var psObjects = invoker.Invoke(string.Format("{0} {1}", command.Command, command.Parameters), null, out errors); + // handle any errors + if ((errors != null) && (errors.Count > 0)) + { + var errorString = new System.Text.StringBuilder(); + foreach (var error in errors) + { + errorString.AppendLine(error.ToString()); + } + this.Logger.Error(string.Format("ERROR!: {0}", errorString.ToString())); + response.Write(string.Format("OOohhh, I got an error running {0}. It looks like this:", command)); + response.Write(errorString.ToString()); + return; + } + // write the result + foreach (var psObject in psObjects) + { + response.Write(this.SerializePSObject(psObject)); + } + } + catch (Exception ex) + { + this.Logger.Error("ERROR!: ", ex); + response.Write(string.Format("Urghhh!, that didn't taste nice! There's a problem with me running the {0} script.", command)); + response.Write(string.Format("Check you are calling the script correctly by using \"@autobot get-help {0}\"", command)); + response.Write("If all else fails ask your administrator for the event/error log entry."); + } + } + } + } + + #endregion + + #region Helpers + + private string GetScriptPath() + { + // get the path to the entry assembly + var assemblyPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); + if (string.IsNullOrEmpty(assemblyPath)) + { + throw new InvalidOperationException(); + } + // append "Scripts" + return Path.Combine(assemblyPath, "Scripts"); + } + + private PowerShellCommand ParseCommand(string chatText) + { + // check if the chat text is worth processing + chatText = chatText == null ? null : chatText.Trim(); + if (string.IsNullOrEmpty(chatText)) { return null; } + // process the chat text + var words = chatText.Split(' '); + var command = words[0]; + switch (command) + { + case "coolio": + case "superb": + // intercept some special keywords + return new PowerShellCommand("Get-RandomImage", command); + default: + // extract the first word as the command, and the rest as parameters + var parameters = (words.Length < 2) ? string.Empty : string.Join(" ", words, 1, words.Length - 1); + return new PowerShellCommand(command, parameters); + } + } + + private string GetFullModulePath(string filenameWithoutExtension) + { + return Path.Combine(this.ScriptPath, filenameWithoutExtension + ".psm1"); + } + + private string SerializePSObject(PSObject psObject) + { + // handle some trivial cases + if ((psObject == null) || (psObject.BaseObject == null)) + { + return null; + } + // convert the base object to a string based on its type + var baseType = psObject.BaseObject.GetType(); + if (baseType == typeof(Hashtable)) + { + var value = new System.Text.StringBuilder(); + foreach (DictionaryEntry dictionaryEntry in (Hashtable)psObject.BaseObject) + { + value.AppendFormat("{0} = {1}\n", dictionaryEntry.Key, dictionaryEntry.Value); + } + return value.ToString(); + } + else + { + return psObject.ToString(); + } + } + + #endregion + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/PowerShellCommand.cs b/src/AutoBot.Agents.PowerShell/PowerShellCommand.cs new file mode 100644 index 0000000..a902ec3 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/PowerShellCommand.cs @@ -0,0 +1,33 @@ +namespace AutoBot.Agents.PowerShell +{ + + internal sealed class PowerShellCommand + { + + public PowerShellCommand(string command) + { + this.Command = command; + this.Parameters = null; + } + + public PowerShellCommand(string command, string parameters) + { + this.Command = command; + this.Parameters = parameters; + } + + public string Command + { + get; + set; + } + + public string Parameters + { + get; + set; + } + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/Properties/AssemblyInfo.cs b/src/AutoBot.Agents.PowerShell/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..82d4839 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AutoBot.Engines.PowerShell")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoBot.Engines.PowerShell")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e9c7eb6c-ec0c-438b-af39-6390f9794b8f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AutoBot.Agents.PowerShell/Scripts/Get-Help.psm1 b/src/AutoBot.Agents.PowerShell/Scripts/Get-Help.psm1 new file mode 100644 index 0000000..183de9c --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Scripts/Get-Help.psm1 @@ -0,0 +1,105 @@ +function Get-Help() +{ + + <# + + .SYNOPSIS + Details all available AutoBot commands. + + .DESCRIPTION + Returns a list of names of all *.psm1 PowerShell Modules in the AutoBot\Scripts folder and optionally gives + detailed help on a given script + + .NOTES + Name: Get-Help + Author: Lloyd Holman + DateCreated: 2011/11/09 + + .EXAMPLE + Get-Help + + Description + ------------ + Returns a list of names of all *.psm1 PowerShell Modules in the AutoBot\Scripts folder + + .EXAMPLE + Get-Help Set-Profile + Description + ------------ + Returns PowerShell native get-help detail for the Set-Profile AutoBot script module + + #> + + [cmdletbinding()] + param + ( + + [Parameter(Position = 0, Mandatory = $false )] + [string] $modulename, + + [Parameter(Position = 1, Mandatory = $false)] + [switch] $examples, + + [Parameter(Position = 2, Mandatory = $false)] + [switch] $detailed, + + [Parameter(Position = 3, Mandatory = $False )] + [switch] $full + + ) + + try + { + + if( [string]::IsNullOrEmpty($modulename) ) + { + $scripts = Get-ChildItem -Recurse -Exclude get-help.psm1 -Include *.psm1 | % { [System.IO.Path]::GetFileNameWithoutExtension($_); }; + $result = "Word! I have the following scripts installed and ready to run.`r`n" + + "`r`n" + + [string]::Join("`r`n", $scripts) + + "`r`n" + + "For information about running an installed script use get-help `r`n" + + "e.g. `"@AutoBot get-help set-profile`" `r`n" + + "Find more scripts at https://github.com/lholman/AutoBot-Scripts/tree/master/src/Scripts" ; + return $result; + } + + #write-host "$modulename provided"; + if( $modulename -eq "Get-Help" ) + { + return $null; + } + + Microsoft.PowerShell.Core\Import-Module ".\Scripts\$modulename.psm1"; + + if( $PSBoundParameters.ContainsKey("examples") ) + { + $result = Microsoft.PowerShell.Core\Get-Help $moduleName -examples; + return $result; + } + elseif( $PSBoundParameters.ContainsKey("detailed") ) + { + $result = Microsoft.PowerShell.Core\Get-Help $moduleName -detailed; + return $result; + } + elseif( $PSBoundParameters.ContainsKey("full") ) + { + $result = Microsoft.PowerShell.Core\Get-Help $moduleName -full; + return $result; + } + else + { + $result = Microsoft.PowerShell.Core\Get-Help $moduleName; + return $result; + } + + } + catch [Exception] + { + + $ex = $_.psbase.Exception; + write-host $ex.ToString(); + + } + +} \ No newline at end of file diff --git a/src/AutoBot.Agents.PowerShell/Scripts/Get-Prediction.psm1 b/src/AutoBot.Agents.PowerShell/Scripts/Get-Prediction.psm1 new file mode 100644 index 0000000..9c2cdf4 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Scripts/Get-Prediction.psm1 @@ -0,0 +1,53 @@ +function Get-Prediction() { + + <# + + .SYNOPSIS + Ask the oracle, and the oracle will answer. + + #> + + param + ( + + [Parameter(Mandatory=$true)] + [string] $Question + + ) + + $ErrorActionPreference = "Stop"; + Set-StrictMode -Version "Latest"; + + # see http://en.wikipedia.org/wiki/Magic_8-Ball + $predictions = @( + # yes + "It is certain", + "It is decidedly so", + "Without a doubt", + "Yes definitely", + "You may rely on it", + "As I see it, yes", + "Most likely", + "Outlook good", + "Yes", + # maybe + "Signs point to yes", + "Reply hazy try again", + "Ask again later", + "Better not tell you now", + "Cannot predict now", + "Concentrate and ask again", + # no + "Don't count on it", + "My reply is no", + "My sources say no", + "Outlook not so good", + "Very doubtful" + ); + + $prediction = $predictions | Get-Random; + + return "You asked: $question`r`n" + + "Magic 8-ball says: $prediction"; + +} diff --git a/src/AutoBot.Agents.PowerShell/Scripts/Get-RandomImage.psm1 b/src/AutoBot.Agents.PowerShell/Scripts/Get-RandomImage.psm1 new file mode 100644 index 0000000..a804c25 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/Scripts/Get-RandomImage.psm1 @@ -0,0 +1,54 @@ +function Get-RandomImage() +{ + + <# + + .SYNOPSIS + Returns a random image from a Google image search for a given search term. + + .DESCRIPTION + Returns a random image from a Google image search for a given search term. + + .NOTES + Name: Get-RandomImage + Author: Steve Garrett, Lloyd Holman + DateCreated: 21/11/2011 + + .EXAMPLE + Get-RandomImage coolio + + #> + + param + ( + + [Parameter(Mandatory=$true)] + [string] $term + + ) + + $ErrorActionPreference = "Stop"; + Set-StrictMode -Version "Latest"; + + try + { + + $url = "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=$term"; + $html = (new-object System.Net.WebClient).DownloadString($url); + #write-host $html; + + $regex = [regex] """url"":""([^""]+)"""; + $result = $regex.Matches($html) | get-random | % { $_.Groups[1].Value }; + + return ($result | Out-String); + + } + catch [Exception] + { + + $ex = $_.psbase.Exception; + write-host $ex.ToString(); + + } + +} diff --git a/src/AutoBot.Agents.PowerShell/packages.config b/src/AutoBot.Agents.PowerShell/packages.config new file mode 100644 index 0000000..20d0df5 --- /dev/null +++ b/src/AutoBot.Agents.PowerShell/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/AutoBot.ChatClients.HipChat/AutoBot.ChatClients.HipChat.csproj b/src/AutoBot.ChatClients.HipChat/AutoBot.ChatClients.HipChat.csproj new file mode 100644 index 0000000..f5a0d82 --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/AutoBot.ChatClients.HipChat.csproj @@ -0,0 +1,72 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {3C7C21F8-F86A-470D-8D68-87B1939C23D1} + Library + Properties + AutoBot.ChatClients.HipChat + AutoBot.ChatClients.HipChat + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + AnyCPU + + + + ..\..\lib\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll + + + ..\..\lib\packages\Castle.Windsor.3.2.0\lib\net40\Castle.Windsor.dll + + + ..\..\lib\jabber-net.dll + + + + + + + + + + + + + + + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + AutoBot.Core + + + + + + + + \ No newline at end of file diff --git a/src/AutoBot.ChatClients.HipChat/HipChatMessage.cs b/src/AutoBot.ChatClients.HipChat/HipChatMessage.cs new file mode 100644 index 0000000..f4afbfe --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/HipChatMessage.cs @@ -0,0 +1,58 @@ +using AutoBot.Core.Chat; +using jabber.protocol.client; + +namespace AutoBot.ChatClients.HipChat +{ + + /// + /// Represents the text in a chat message received from a HipChat chat client. + /// + public sealed class HipChatMessage : IChatMessage + { + + #region Constructors + + public HipChatMessage(MessageType type, string originalText, string commandText) + { + this.Type = type; + this.OriginalText = originalText; + this.CommandText = commandText; + } + + #endregion + + #region Properties + + public MessageType Type + { + get; + private set; + } + + #endregion + + #region IChatMessage Interface + + /// + /// Gets the original text of the message received by the chat client. + /// + public string OriginalText + { + get; + private set; + } + + /// + /// Gets the pre-processed command text to execute by the engine. + /// + public string CommandText + { + get; + private set; + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.HipChat/HipChatResponse.cs b/src/AutoBot.ChatClients.HipChat/HipChatResponse.cs new file mode 100644 index 0000000..ecfda87 --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/HipChatResponse.cs @@ -0,0 +1,63 @@ +using AutoBot.Core.Chat; +using jabber; +using jabber.protocol.client; + +namespace AutoBot.ChatClients.HipChat +{ + + /// + /// Represents a response channel that can be used to write + /// response text while processing HipChat chat messages. + /// + public sealed class HipChatResponse : IChatResponse + { + + #region Constructors + + public HipChatResponse(HipChatSession session, JID replyTo, MessageType messageType) + { + this.Session = session; + this.ReplyTo = replyTo; + this.MessageType = messageType; + } + + #endregion + + #region Properties + + private HipChatSession Session + { + get; + set; + } + + private JID ReplyTo + { + get; + set; + } + + private MessageType MessageType + { + get; + set; + } + + #endregion + + #region IChatResponse Interface + + /// + /// Writes a message to the chat client response channel. + /// + /// The text to write to the chat client. + public void Write(string text) + { + this.Session.SendResponse(this.MessageType, this.ReplyTo, text); + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.HipChat/HipChatSession.cs b/src/AutoBot.ChatClients.HipChat/HipChatSession.cs new file mode 100644 index 0000000..afd4d95 --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/HipChatSession.cs @@ -0,0 +1,442 @@ +using AutoBot.Core.Chat; +using Castle.Core.Logging; +using jabber; +using jabber.client; +using jabber.connection; +using jabber.protocol; +using jabber.protocol.client; +using jabber.protocol.iq; +using System; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Threading; +using System.Xml; + +namespace AutoBot.ChatClients.HipChat +{ + + public sealed class HipChatSession : IChatSession + { + + #region Events + + public event EventHandler MessageReceived; + + #endregion + + #region Fields + + private JabberClient _jabberClient; + private DiscoManager _discoManager; + private PresenceManager _presenceManager; + + #endregion + + #region Constructors + + public HipChatSession(ILogger logger) + { + this.Logger = logger; + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + public string Server + { + get; + set; + } + + public string UserName + { + get; + set; + } + + public string Password + { + get; + set; + } + public string Resource + { + get; + set; + } + + public string MentionName + { + get; + set; + } + + public string NickName + { + get; + set; + } + + public string SubscribedRooms + { + get; + set; + } + + #endregion + + #region JabberClient Event Handlers + + private void jabber_OnAfterPresenceOut(object sender, Presence pres) + { + this.Logger.Info("jabber_OnAfterPresenceOut"); + } + + private void jabber_OnAuthenticate(object o) + { + this.Logger.Info("jabber_OnAuthenticate - Authenticated"); + _discoManager.BeginFindServiceWithFeature(URI.MUC, discoManager_FindServiceWithFeature, new object()); + } + + private void jabber_OnAuthError(object sender, XmlElement rp) + { + this.Logger.Info("jabber_OnAuthError"); + } + + private void jabber_OnBeforePresenceOut(object sender, Presence pres) + { + this.Logger.Info("jabber_OnBeforePresenceOut"); + } + + private void jabber_OnConnect(object o, StanzaStream s) + { + this.Logger.Info("jabber_OnConnect - Connecting"); + var client = (JabberClient)o; + } + + private void jabber_OnDisconnect(object sender) + { + this.Logger.Info("jabber_OnDisconnect - Disconnecting"); + } + + private void jabber_OnError(object o, Exception ex) + { + this.Logger.Info("jabber_OnError"); + this.Logger.Error("ERROR!:", ex); + throw ex; + } + + private bool jabber_OnInvalidCertificate(object o, X509Certificate cert, X509Chain chain, SslPolicyErrors errors) + { + // the current jabber server has an invalid certificate, + // but override validation and accept it anyway. + this.Logger.Info("jabber_OnInvalidCertificate"); + this.Logger.Info("Validating certificate"); + return true; + } + + private void jabber_OnIQ(object sender, IQ iq) + { + //this.Logger.Info("jabber_OnIQ"); + if (iq.Type == IQType.error) + { + this.Logger.Error(string.Format("IQ : {0}", iq.OuterXml)); + } + } + + private void jabber_OnLoginRequired(object sender) + { + this.Logger.Info("jabber_OnLoginRequired"); + } + + private void jabber_OnMessage(object sender, Message msg) + { + this.Logger.Debug(string.Format("RECV From: {0}@{1} : {2}", msg.From.User, msg.From.Server, msg.Body)); + this.OnMessageReceived(msg); + } + + private void jabber_OnPresence(object sender, Presence pres) + { + //this.Logger.Info("jabber_OnPresence"); + if (pres.Type == PresenceType.error) + { + this.Logger.Error(string.Format("PRES: {0}", pres.OuterXml)); + } + } + + private void jabber_OnProtocol(object sender, XmlElement rp) + { + //this.Logger.Info("jabber_OnProtocol"); + } + + private void jabber_OnReadText(object sender, string text) + { + //this.Logger.Info("jabber_OnReadText"); + // ignore keep-alive spaces + if (text == " ") + { + this.Logger.Debug("RECV: Keep alive"); + return; + } + this.Logger.Debug(string.Format("RECV: {0}", text)); + } + + private void jabber_OnRegistered(object sender, IQ iq) + { + this.Logger.Info("jabber_OnRegistered"); + _jabberClient.Login(); + } + + private bool jabber_OnRegisterInfo(object sender, Register register) + { + this.Logger.Info("jabber_OnRegisterInfo"); + return true; + } + + private void jabber_OnStreamInit(object o, ElementStream elementStream) + { + //this.Logger.Info("jabber_OnStreamInit"); + var client = (JabberClient)o; + _discoManager.Stream = client; + } + + private void jabber_OnStreamError(object sender, XmlElement rp) + { + // event handled in jabber_OnMessage + this.Logger.Info("jabber_OnStreamError"); + //this.Logger.Error(string.Format("STER: {0}", rp.OuterXml)); + } + + private void jabber_OnStreamHeader(object sender, XmlElement rp) + { + // event handled in jabber_OnMessage + //this.Logger.Info("jabber_OnStreamHeader"); + //this.Logger.Debug(string.Format("STHD: {0}", rp.OuterXml)); + } + + private void jabber_OnWriteText(object sender, string text) + { + //this.Logger.Info("jabber_OnWriteText"); + // ignore keep-alive spaces + if (text == " ") + { + this.Logger.Debug("RECV: Keep alive"); + return; + } + this.Logger.Debug(string.Format("SEND: {0}", text)); + } + + #endregion + + #region DiscoManager Event Handlers + + private void discoManager_OnStreamChanged(object sender) + { + this.Logger.Info("discoManager_OnStreamChanged"); + } + + private void discoManager_FindServiceWithFeature(DiscoManager sender, DiscoNode node, object state) + { + if (node == null) + { + return; + } + if (node.Name == "Rooms") + { + _discoManager.BeginGetItems(node, discoManager_SubscribeToRooms, new object()); + } + } + + private void discoManager_SubscribeToRooms(DiscoManager sender, DiscoNode node, object state) + { + if (node == null) + { + return; + } + if (node.Children != null && SubscribedRooms == "@all") + { + foreach (DiscoNode dn in node.Children) + { + Logger.Info(string.Format("Subscribing to: {0}:{1}", dn.JID, dn.Name)); + // hipchat no longer supports Groupchat 1.0 Protocol to enter rooms, + // but jabber.net uses Groupchat to join rooms so we have to create + // a Basic MUC Protocol message by hand instead. + // + // see http://help.hipchat.com/knowledgebase/articles/64377-xmpp-jabber-support-details + // http://xmpp.org/extensions/xep-0045.html#enter-gc + // http://xmpp.org/extensions/xep-0045.html#enter-muc + var presenceMessage = new XmlDocument(); + presenceMessage.LoadXml("" + + " " + + ""); + // set the "from" value + var presenceFrom = presenceMessage.SelectSingleNode("presence/@from"); + if (presenceFrom == null) + { + throw new InvalidOperationException(); + } + presenceFrom.InnerText = new JID(this.UserName, dn.JID.Server, this.Resource); + // set the "to" value + var presenceTo = presenceMessage.SelectSingleNode("presence/@to"); + if (presenceTo == null) + { + throw new InvalidOperationException(); + } + presenceTo.InnerText = new JID(dn.JID.User, dn.JID.Server, this.NickName); ; + // write the message + _jabberClient.Write(presenceMessage.DocumentElement); + } + } + } + + #endregion + + #region PresenceManager Event Handlers + + private void presenceManager_OnPrimarySessionChange(object sender, JID bare) + { + this.Logger.Info("presenceManager_OnPrimarySessionChange"); + if (bare.Bare.Equals(_jabberClient.JID.Bare, StringComparison.InvariantCultureIgnoreCase)) + { + return; + } + } + + private void presenceManager_OnStreamChanged(object sender) + { + this.Logger.Info("presenceManager_OnStreamChanged"); + } + + #endregion + + #region IChatSession Interface + + public void Connect() + { + _jabberClient = new JabberClient + { + Server = this.Server, + User = this.UserName, + Password = this.Password, + Resource = this.Resource, + AutoStartTLS = true, + PlaintextAuth = true, + AutoPresence = true, + AutoRoster = false, + AutoReconnect = -1, + AutoLogin = true + }; + _presenceManager = new PresenceManager + { + Stream = _jabberClient + }; + _discoManager = new DiscoManager(); + // add presence manager event handlers + _presenceManager.OnPrimarySessionChange += presenceManager_OnPrimarySessionChange; + _presenceManager.OnStreamChanged += presenceManager_OnStreamChanged; + _presenceManager.OnPrimarySessionChange += presenceManager_OnPrimarySessionChange; + // add jabber client event handlers + _jabberClient.OnAfterPresenceOut += jabber_OnAfterPresenceOut; + _jabberClient.OnAuthenticate += jabber_OnAuthenticate; + _jabberClient.OnAuthError += jabber_OnAuthError; + _jabberClient.OnBeforePresenceOut += jabber_OnBeforePresenceOut; + _jabberClient.OnConnect += jabber_OnConnect; + _jabberClient.OnDisconnect += jabber_OnDisconnect; + _jabberClient.OnError += jabber_OnError; + _jabberClient.OnInvalidCertificate += jabber_OnInvalidCertificate; + _jabberClient.OnIQ += jabber_OnIQ; + _jabberClient.OnLoginRequired += jabber_OnLoginRequired; + _jabberClient.OnMessage += jabber_OnMessage; + _jabberClient.OnPresence += jabber_OnPresence; + _jabberClient.OnProtocol += jabber_OnProtocol; + _jabberClient.OnReadText += jabber_OnReadText; + _jabberClient.OnRegistered += jabber_OnRegistered; + _jabberClient.OnRegisterInfo += jabber_OnRegisterInfo; + _jabberClient.OnStreamError += jabber_OnStreamError; + _jabberClient.OnStreamHeader += jabber_OnStreamHeader; + _jabberClient.OnStreamInit += jabber_OnStreamInit; + _jabberClient.OnWriteText += jabber_OnWriteText; + // add discovery manager event handlers + _discoManager.OnStreamChanged += discoManager_OnStreamChanged; + // connect to the HipChat server + this.Logger.Info(string.Format("Connecting to '{0}'", _jabberClient.Server)); + _jabberClient.Connect(); + var retryCountLimit = 10; + while (!_jabberClient.IsAuthenticated && retryCountLimit > 0) + { + this.Logger.Info(string.Format("Waiting...")); + retryCountLimit--; + Thread.Sleep(1000); + } + if (_jabberClient.IsAuthenticated) + { + this.Logger.Info(string.Format("Authenticated as '{0}'", _jabberClient.User)); + } + } + + public void Disconnect() + { + this.Logger.Info(string.Format("Disconnecting from '{0}'", _jabberClient.Server)); + _jabberClient.Close(); + } + + #endregion + + #region Methods + + private void OnMessageReceived(Message message) + { + // take a local copy of the event so we don't get a race condition further down + var handler = this.MessageReceived; + if (handler == null) + { + return; + } + // skip blank messages + if (message.Body == null && message.X == null) + { + return; + } + // skip messages from the bot + if (message.From.Resource == this.NickName) + { + return; + } + // extract the chat text + var commandText = (message.Body == null) ? message.X.InnerText.Trim() : message.Body.Trim(); + if ((message.Type == MessageType.groupchat) && commandText.StartsWith(this.MentionName)) + { + commandText = this.RemoveMentionsFromMessage(commandText); + } + // build the chat message and response to pass to the event handler + var chatMessage = new HipChatMessage(message.Type, message.Body, commandText); + var responseJid = new JID(message.From.User, message.From.Server, message.From.Resource); + var chatResponse = new HipChatResponse(this, responseJid, message.Type); + var args = new MessageReceivedEventArgs(chatMessage, chatResponse); + // call the event handler + handler(this, args); + } + + internal void SendResponse(MessageType messageType, string replyTo, string message) + { + _jabberClient.Message(messageType, replyTo, message); + } + + private string RemoveMentionsFromMessage(string chatText) + { + // TODO: Remove all @mentions + return chatText.Replace(this.MentionName, string.Empty).Trim(); + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.HipChat/Properties/AssemblyInfo.cs b/src/AutoBot.ChatClients.HipChat/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9ab5b56 --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AutoBot.HipChat")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoBot.HipChat")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cb622dc2-6001-4ba7-96de-670f8cd252bf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AutoBot.ChatClients.HipChat/packages.config b/src/AutoBot.ChatClients.HipChat/packages.config new file mode 100644 index 0000000..2226cf1 --- /dev/null +++ b/src/AutoBot.ChatClients.HipChat/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/AutoBot.ChatClients.Skype/AutoBot.ChatClients.Skype.csproj b/src/AutoBot.ChatClients.Skype/AutoBot.ChatClients.Skype.csproj new file mode 100644 index 0000000..81a4653 --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/AutoBot.ChatClients.Skype.csproj @@ -0,0 +1,76 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {BF08BFAC-2089-4779-8557-1D76E0DC24E5} + Library + Properties + AutoBot.ChatClients.Skype + AutoBot.ChatClients.Skype + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\lib\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll + + + + True + + + + + + + + + + + {03282B5D-B38F-469D-849A-09B0A7F4881B} + 1 + 0 + 0 + tlbimp + False + True + + + + + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + AutoBot.Core + + + + + + + + \ No newline at end of file diff --git a/src/AutoBot.ChatClients.Skype/Properties/AssemblyInfo.cs b/src/AutoBot.ChatClients.Skype/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..83aa307 --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AutoBot.ChatClients.Skype")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoBot.ChatClients.Skype")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a07af9a1-9f9d-477d-a513-e38d53e882e1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AutoBot.ChatClients.Skype/SkypeMessage.cs b/src/AutoBot.ChatClients.Skype/SkypeMessage.cs new file mode 100644 index 0000000..31ad6a3 --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/SkypeMessage.cs @@ -0,0 +1,49 @@ +using AutoBot.Core.Chat; +using System; + +namespace AutoBot.ChatClients.Skype +{ + + /// + /// Represents the text in a chat message received from a Skype chat client. + /// + [Obsolete("Skype no longer supports a desktop API")] + public sealed class SkypeMessage : IChatMessage + { + + #region Constructors + + public SkypeMessage(string originalText, string commandText) + : base() + { + this.OriginalText = originalText; + this.CommandText = commandText; + } + + #endregion + + #region IChatMessage Interface + + /// + /// Gets the original text of the message received by the chat client. + /// + public string OriginalText + { + get; + private set; + } + + /// + /// Gets the pre-processed command text to execute by the engine. + /// + public string CommandText + { + get; + private set; + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.Skype/SkypeResponse.cs b/src/AutoBot.ChatClients.Skype/SkypeResponse.cs new file mode 100644 index 0000000..32a3e2d --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/SkypeResponse.cs @@ -0,0 +1,50 @@ +using AutoBot.Core.Chat; +using SKYPE4COMLib; +using System; + +namespace AutoBot.ChatClients.Skype +{ + + /// + /// Represents a response channel that can be used to write + /// response text while processing Skype chat messages. + /// + [Obsolete("Skype no longer supports a desktop API")] + public sealed class SkypeResponse : IChatResponse + { + + #region Constructors + + public SkypeResponse(Chat chat) + { + this.Chat = chat; + } + + #endregion + + #region Properties + + private Chat Chat + { + get; + set; + } + + #endregion + + #region IChatResponse Interface + + /// + /// Writes a message to the chat client response channel. + /// + /// The text to write to the chat client. + public void Write(string text) + { + this.Chat.SendMessage(text); + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.Skype/SkypeSession.cs b/src/AutoBot.ChatClients.Skype/SkypeSession.cs new file mode 100644 index 0000000..ba95067 --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/SkypeSession.cs @@ -0,0 +1,408 @@ +using AutoBot.Core.Chat; +using Castle.Core.Logging; +using SKYPE4COMLib; +using System; + +namespace AutoBot.ChatClients.Skype +{ + + [Obsolete("Skype no longer supports a desktop API")] + public sealed class SkypeSession : IChatSession + { + + #region Fields + + private SKYPE4COMLib.Skype _skype; + + #endregion + + #region Events + + public event EventHandler MessageReceived; + + #endregion + + #region Constructors + + public SkypeSession(ILogger logger) + { + this.Logger = logger; + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + private SKYPE4COMLib.Skype Skype + { + get + { + if (_skype == null) + { + _skype = new SKYPE4COMLib.Skype(); + } + return _skype; + } + } + + #endregion + + #region Skype Event Handlers + + private void Skype_ApplicationConnecting(SKYPE4COMLib.Application application, UserCollection usercollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ApplicationDatagram(SKYPE4COMLib.Application application, ApplicationStream applicationstream, String itext) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ApplicationReceiving(SKYPE4COMLib.Application application, ApplicationStreamCollection applicationstreamcollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ApplicationSending(SKYPE4COMLib.Application application, ApplicationStreamCollection applicationstreamcollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ApplicationStreams(SKYPE4COMLib.Application application, ApplicationStreamCollection applicationstreamcollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_AsyncSearchUsersFinished(int cookie, UserCollection usercollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_AttachmentStatus(TAttachmentStatus status) + { + switch (status) + { + case TAttachmentStatus.apiAttachPendingAuthorization: + break; + case TAttachmentStatus.apiAttachRefused: + break; + case TAttachmentStatus.apiAttachSuccess: + break; + default: + this.Logger.Debug(status.ToString()); + break; + } + } + + private void Skype_AutoAway(bool automatic) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallDtmfReceived(Call call, string code) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallHistory() + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallInputStatusChanged(Call call, bool status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallSeenStatusChanged(Call call, bool status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallStatus(Call call, TCallStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallTransferStatusChanged(Call call, TCallStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallVideoReceiveStatusChanged(Call call, TCallVideoSendStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallVideoSendStatusChanged(Call call, TCallVideoSendStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_CallVideoStatusChanged(Call call, TCallVideoStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ChatMembersChanged(Chat chat, UserCollection usercollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_ChatMemberRoleChanged(IChatMember ichatmember, TChatMemberRole role) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_Command(Command command) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + this.Logger.Debug(" id = " + command.Id); + this.Logger.Debug(" command = " + command.Command); + this.Logger.Debug(" expected = " + command.Expected); + this.Logger.Debug(" reply = " + command.Reply); + } + + private void Skype_ConnectionStatus(TConnectionStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + this.Logger.Debug(" status = " + status); + } + + private void Skype_ContactsFocused(string contacts) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_Error(Command command, int number, string description) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_FileTransferStatusChanged(IFileTransfer ifiletransfer, TFileTransferStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_GroupDeleted(int group) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_GroupExpanded(Group group, bool expanded) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_GroupUsers(Group group, UserCollection usercollection) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_GroupVisible(Group group, bool visible) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_MessageHistory(string user) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_MessageStatus(ChatMessage chatmessage, TChatMessageStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + this.Logger.Debug(" status = " + status); + switch (status) + { + case TChatMessageStatus.cmsRead: + break; + case TChatMessageStatus.cmsReceived: + this.Logger.Debug(" body = " + chatmessage.Body); + this.OnMessageReceived(chatmessage); + break; + case TChatMessageStatus.cmsSending: + break; + case TChatMessageStatus.cmsSent: + break; + default: + throw new System.InvalidOperationException(status.ToString()); + } + } + + private void Skype_Mute(bool mute) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_OnlineStatus(User user, TOnlineStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_PluginEventClicked(PluginEvent pluginevent) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_PluginMenuItemClicked(PluginMenuItem pluginmenuitem, UserCollection usercollection, TPluginContext plugincontext, string contextid) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_Reply(Command command) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + this.Logger.Debug(" id = " + command.Id); + this.Logger.Debug(" command = " + command.Command); + this.Logger.Debug(" expected = " + command.Expected); + this.Logger.Debug(" reply = " + command.Reply); + } + + private void Skype_SilentModeStatusChanged(bool silent) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_SmsMessageStatusChanged(SmsMessage smsmessage, TSmsMessageStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_SmsTargetStatusChanged(SmsTarget smstarget, TSmsTargetStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_UILanguageChanged(string code) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_UserAuthorizationRequestReceived(User user) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_UserMood(User user, string moodtext) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_UserStatus(TUserStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + this.Logger.Debug(" status = " + status); + } + + private void Skype_VoicemailStatus(Voicemail voicemail, TVoicemailStatus status) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + private void Skype_WallpaperChanged(string path) + { + this.Logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name); + } + + #endregion + + #region Methods + + private void AttachEventHandlers(SKYPE4COMLib.Skype skype) + { + var evt = (_ISkypeEvents_Event)skype; + evt.ApplicationConnecting += this.Skype_ApplicationConnecting; + evt.ApplicationDatagram += this.Skype_ApplicationDatagram; + evt.ApplicationReceiving += this.Skype_ApplicationReceiving; + evt.ApplicationSending += this.Skype_ApplicationSending; + evt.ApplicationStreams += this.Skype_ApplicationStreams; + evt.AsyncSearchUsersFinished += this.Skype_AsyncSearchUsersFinished; + evt.AttachmentStatus += this.Skype_AttachmentStatus; + evt.AutoAway += this.Skype_AutoAway; + evt.CallDtmfReceived += this.Skype_CallDtmfReceived; + evt.CallHistory += this.Skype_CallHistory; + evt.CallInputStatusChanged += this.Skype_CallInputStatusChanged; + evt.CallSeenStatusChanged += this.Skype_CallSeenStatusChanged; + evt.CallStatus += this.Skype_CallStatus; + evt.CallTransferStatusChanged += this.Skype_CallTransferStatusChanged; + evt.CallVideoReceiveStatusChanged += this.Skype_CallVideoReceiveStatusChanged; + evt.CallVideoSendStatusChanged += this.Skype_CallVideoSendStatusChanged; + evt.CallVideoStatusChanged += this.Skype_CallVideoStatusChanged; + evt.ChatMembersChanged += this.Skype_ChatMembersChanged; + evt.ChatMemberRoleChanged += this.Skype_ChatMemberRoleChanged; + evt.Command += this.Skype_Command; + evt.ConnectionStatus += this.Skype_ConnectionStatus; + evt.ContactsFocused += this.Skype_ContactsFocused; + evt.Error += this.Skype_Error; + evt.FileTransferStatusChanged += this.Skype_FileTransferStatusChanged; + evt.GroupDeleted += this.Skype_GroupDeleted; + evt.GroupExpanded += this.Skype_GroupExpanded; + evt.GroupUsers += this.Skype_GroupUsers; + evt.GroupVisible += this.Skype_GroupVisible; + evt.MessageHistory += this.Skype_MessageHistory; + evt.MessageStatus += this.Skype_MessageStatus; + evt.Mute += this.Skype_Mute; + evt.OnlineStatus += this.Skype_OnlineStatus; + evt.PluginEventClicked += this.Skype_PluginEventClicked; + evt.PluginMenuItemClicked += this.Skype_PluginMenuItemClicked; + evt.Reply += this.Skype_Reply; + evt.SilentModeStatusChanged += this.Skype_SilentModeStatusChanged; + evt.SmsMessageStatusChanged += this.Skype_SmsMessageStatusChanged; + evt.SmsTargetStatusChanged += this.Skype_SmsTargetStatusChanged; + evt.UILanguageChanged += this.Skype_UILanguageChanged; + evt.UserAuthorizationRequestReceived += this.Skype_UserAuthorizationRequestReceived; + evt.UserMood += this.Skype_UserMood; + evt.UserStatus += this.Skype_UserStatus; + evt.VoicemailStatus += this.Skype_VoicemailStatus; + evt.WallpaperChanged += this.Skype_WallpaperChanged; + } + + public void Connect() + { + this.AttachEventHandlers(this.Skype); + this.Skype.Attach(this.Skype.Protocol, false); + } + + public void Disconnect() + { + } + + public void OnMessageReceived(ChatMessage chatmessage) + { + // take a local copy of the event so we don't get a race condition on the next line + var handler = this.MessageReceived; + if (handler != null) + { + // extract the chat text + if (chatmessage.Body == null) + { + return; + } + var commandText = chatmessage.Body.Trim(); + // build the chat message and response to pass to the event handler + var message = new SkypeMessage(chatmessage.Body, commandText); + var response = new SkypeResponse(chatmessage.Chat); + var args = new MessageReceivedEventArgs(message, response); + // call the event handler + handler(this, args); + } + } + + public void SendResponse(Chat chat, string message) + { + chat.SendMessage(message); + } + + #endregion + + } + +} diff --git a/src/AutoBot.ChatClients.Skype/packages.config b/src/AutoBot.ChatClients.Skype/packages.config new file mode 100644 index 0000000..0144209 --- /dev/null +++ b/src/AutoBot.ChatClients.Skype/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/AutoBot.Core/AutoBot.Core.csproj b/src/AutoBot.Core/AutoBot.Core.csproj new file mode 100644 index 0000000..beef82b --- /dev/null +++ b/src/AutoBot.Core/AutoBot.Core.csproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + Library + Properties + AutoBot.Core + AutoBot.Core + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\lib\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll + + + ..\..\lib\packages\Castle.Windsor.3.2.0\lib\net40\Castle.Windsor.dll + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AutoBot.Core/Chat/IChatMessage.cs b/src/AutoBot.Core/Chat/IChatMessage.cs new file mode 100644 index 0000000..2487aff --- /dev/null +++ b/src/AutoBot.Core/Chat/IChatMessage.cs @@ -0,0 +1,28 @@ +namespace AutoBot.Core.Chat +{ + + /// + /// Represents the text in a chat message received from a chat client. + /// + public interface IChatMessage + { + + /// + /// Gets the original text of the message received by the chat client. + /// + string OriginalText + { + get; + } + + /// + /// Gets the pre-processed command text to execute by the engine. + /// + string CommandText + { + get; + } + + } + +} \ No newline at end of file diff --git a/src/AutoBot.Core/Chat/IChatResponse.cs b/src/AutoBot.Core/Chat/IChatResponse.cs new file mode 100644 index 0000000..e6f6a70 --- /dev/null +++ b/src/AutoBot.Core/Chat/IChatResponse.cs @@ -0,0 +1,19 @@ +namespace AutoBot.Core.Chat +{ + + /// + /// Represents a response channel that can be used to write + /// response text while processing chat messages. + /// + public interface IChatResponse + { + + /// + /// Writes a message to the chat client response channel. + /// + /// The text to write to the chat client. + void Write(string text); + + } + +} diff --git a/src/AutoBot.Core/Chat/IChatSession.cs b/src/AutoBot.Core/Chat/IChatSession.cs new file mode 100644 index 0000000..b7e5669 --- /dev/null +++ b/src/AutoBot.Core/Chat/IChatSession.cs @@ -0,0 +1,16 @@ +using System; + +namespace AutoBot.Core.Chat +{ + + public interface IChatSession + { + + event EventHandler MessageReceived; + + void Connect(); + void Disconnect(); + + } + +} diff --git a/src/AutoBot.Core/Chat/MessageReceivedEventArgs.cs b/src/AutoBot.Core/Chat/MessageReceivedEventArgs.cs new file mode 100644 index 0000000..532c0f8 --- /dev/null +++ b/src/AutoBot.Core/Chat/MessageReceivedEventArgs.cs @@ -0,0 +1,44 @@ +using System; + +namespace AutoBot.Core.Chat +{ + + public sealed class MessageReceivedEventArgs : EventArgs + { + + #region Constructors + + public MessageReceivedEventArgs(IChatMessage message, IChatResponse response) + { + this.Message = message; + this.Response = response; + } + + #endregion + + #region Properties + + /// + /// Gets a reference to the message object received by the chat session. + /// + public IChatMessage Message + { + get; + private set; + } + + /// + /// Gets a reference to the response object to use when sending text + /// back to the chat session while processing the message. + /// + public IChatResponse Response + { + get; + private set; + } + + #endregion + + } + +} diff --git a/src/AutoBot.Core/Engine/AutoBotEngine.cs b/src/AutoBot.Core/Engine/AutoBotEngine.cs new file mode 100644 index 0000000..019e010 --- /dev/null +++ b/src/AutoBot.Core/Engine/AutoBotEngine.cs @@ -0,0 +1,99 @@ +using AutoBot.Core.Chat; +using Castle.Core.Logging; +using Castle.Windsor; +using Castle.Windsor.Installer; +using System; +using System.Threading; + +namespace AutoBot.Core.Engine +{ + + public sealed class AutoBotEngine : MarshalByRefObject + { + + #region Constructors + + public AutoBotEngine(ILogger logger, IChatSession session) + { + this.Logger = logger; + this.Session = session; + this.Thread = new Thread(delegate() + { + while (this.IsRunning) + { + //TODO Add background task implementation here + Thread.Sleep(1000); + } + Thread.CurrentThread.Abort(); + } + ); + } + + #endregion + + #region Properties + + private ILogger Logger + { + get; + set; + } + + private IChatSession Session + { + get; + set; + } + + private Thread Thread + { + get; + set; + } + + public bool IsRunning + { + get; + private set; + } + + #endregion + + #region Status Methods + + public void Start() + { + this.Session.Connect(); + this.Session.MessageReceived += this.Session_OnMessageReceived; + this.IsRunning = true; + this.Thread.Start(); + } + + public void Stop() + { + this.Session.MessageReceived -= this.Session_OnMessageReceived; + this.Session.Disconnect(); + this.IsRunning = false; + this.Thread.Join(5000); + } + + #endregion + + #region Event Handlers + + public void Session_OnMessageReceived(object sender, MessageReceivedEventArgs e) + { + // execute the command + using (var container = new WindsorContainer()) + { + container.Install(Configuration.FromAppConfig()); + var agent = container.Resolve(); + agent.ProcessMessage(e.Message, e.Response); + } + } + + #endregion + + } + +} diff --git a/src/AutoBot.Core/Engine/IAutoBotAgent.cs b/src/AutoBot.Core/Engine/IAutoBotAgent.cs new file mode 100644 index 0000000..eef6067 --- /dev/null +++ b/src/AutoBot.Core/Engine/IAutoBotAgent.cs @@ -0,0 +1,13 @@ +using AutoBot.Core.Chat; + +namespace AutoBot.Core.Engine +{ + + public interface IAutoBotAgent + { + + void ProcessMessage(IChatMessage message, IChatResponse response); + + } + +} diff --git a/src/AutoBot.Core/Properties/AssemblyInfo.cs b/src/AutoBot.Core/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a7f1b5f --- /dev/null +++ b/src/AutoBot.Core/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AutoBot.Core")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoBot.Core")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f6de7934-62a3-4a08-9bf6-2ae588b6850b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AutoBot.Core/packages.config b/src/AutoBot.Core/packages.config new file mode 100644 index 0000000..4502e76 --- /dev/null +++ b/src/AutoBot.Core/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/AutoBot.UnitTests/UnitTest1.cs b/src/AutoBot.UnitTests/UnitTest1.cs index f282c31..a8d98f4 100644 --- a/src/AutoBot.UnitTests/UnitTest1.cs +++ b/src/AutoBot.UnitTests/UnitTest1.cs @@ -2,7 +2,6 @@ using System.Text; using System.Collections.Generic; using System.Linq; -using AutoBot.Cmd; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace AutoBot.UnitTests diff --git a/src/AutoBot.sln b/src/AutoBot.sln index 14d43f1..8f593c9 100644 --- a/src/AutoBot.sln +++ b/src/AutoBot.sln @@ -12,6 +12,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBot.Core", "AutoBot.Core\AutoBot.Core.csproj", "{4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBot.ChatClients.HipChat", "AutoBot.ChatClients.HipChat\AutoBot.ChatClients.HipChat.csproj", "{3C7C21F8-F86A-470D-8D68-87B1939C23D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBot.ChatClients.Skype", "AutoBot.ChatClients.Skype\AutoBot.ChatClients.Skype.csproj", "{BF08BFAC-2089-4779-8557-1D76E0DC24E5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBot.Agents.PowerShell", "AutoBot.Agents.PowerShell\AutoBot.Agents.PowerShell.csproj", "{AAAF23E6-595E-4A09-8498-D8B58A8917AA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBot.Agents.Calculator", "AutoBot.Agents.Calculator\AutoBot.Agents.Calculator.csproj", "{E5C817FB-875E-44F0-AA74-461745077D09}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = AutoBot.vsmdi @@ -25,28 +35,95 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Any CPU.ActiveCfg = Debug|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|x86.ActiveCfg = Debug|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|x86.Build.0 = Debug|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Any CPU.ActiveCfg = Release|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Mixed Platforms.Build.0 = Release|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|x86.ActiveCfg = Release|x86 - {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|x86.Build.0 = Release|x86 + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Debug|x86.Build.0 = Debug|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Any CPU.Build.0 = Release|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|x86.ActiveCfg = Release|Any CPU + {CB4A56E0-B916-43ED-A1D0-1EDB50270D73}.Release|x86.Build.0 = Release|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|Any CPU.Build.0 = Debug|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|x86.ActiveCfg = Debug|Any CPU + {058789D3-BACE-456B-AFAC-56AE4E34C007}.Debug|x86.Build.0 = Debug|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|Any CPU.ActiveCfg = Release|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|Any CPU.Build.0 = Release|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|Mixed Platforms.Build.0 = Release|Any CPU {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|x86.ActiveCfg = Release|Any CPU + {058789D3-BACE-456B-AFAC-56AE4E34C007}.Release|x86.Build.0 = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|x86.ActiveCfg = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Debug|x86.Build.0 = Debug|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|Any CPU.Build.0 = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|x86.ActiveCfg = Release|Any CPU + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3}.Release|x86.Build.0 = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Debug|x86.Build.0 = Debug|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|Any CPU.Build.0 = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|x86.ActiveCfg = Release|Any CPU + {3C7C21F8-F86A-470D-8D68-87B1939C23D1}.Release|x86.Build.0 = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|x86.ActiveCfg = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Debug|x86.Build.0 = Debug|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|Any CPU.Build.0 = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|x86.ActiveCfg = Release|Any CPU + {BF08BFAC-2089-4779-8557-1D76E0DC24E5}.Release|x86.Build.0 = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Debug|x86.Build.0 = Debug|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|Any CPU.Build.0 = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|x86.ActiveCfg = Release|Any CPU + {AAAF23E6-595E-4A09-8498-D8B58A8917AA}.Release|x86.Build.0 = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Debug|x86.Build.0 = Debug|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|Any CPU.Build.0 = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|x86.ActiveCfg = Release|Any CPU + {E5C817FB-875E-44F0-AA74-461745077D09}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {058789D3-BACE-456B-AFAC-56AE4E34C007} = {94239C6F-E0C1-45ED-9875-30316CBC6CA3} + EndGlobalSection EndGlobal diff --git a/src/AutoBot/App.config.example b/src/AutoBot/App.config.example index 5d20d5b..25303de 100644 --- a/src/AutoBot/App.config.example +++ b/src/AutoBot/App.config.example @@ -1,17 +1,74 @@ - + + +
- - - - - - - - - + + + + + + + + + + + + + + + + + + chat.hipchat.com + 1234_56789 + password + @autobot + Nickname + bot + + @all + + + + + + + + + + + + + + + + + @@ -27,16 +84,19 @@ + + + + - - - + + \ No newline at end of file diff --git a/src/AutoBot/AutoBot.csproj b/src/AutoBot/AutoBot.csproj index f3fe69e..2889e3f 100644 --- a/src/AutoBot/AutoBot.csproj +++ b/src/AutoBot/AutoBot.csproj @@ -14,96 +14,125 @@ 512 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true - - x86 + true full false - ..\..\build\ + bin\Debug\ DEBUG;TRACE prompt 4 - - x86 + pdbonly true - ..\..\build\ + bin\Release\ TRACE prompt 4 - - False - ..\..\lib\packages\EasyHttp.1.4.2.0\lib\net40\EasyHttp.dll + + ..\..\lib\packages\Castle.Core.3.2.0\lib\net40-client\Castle.Core.dll - - ..\..\lib\packages\HipChat.Net.1.0\lib\net40\HipChat.Net.dll + + ..\..\lib\packages\Castle.LoggingFacility.3.2.0\lib\net40\Castle.Facilities.Logging.dll - - ..\..\lib\jabber-net.dll + + ..\..\lib\packages\Castle.Core-log4net.3.2.0\lib\net40\Castle.Services.Logging.Log4netIntegration.dll - - ..\..\lib\packages\JsonFx.2.0.1106.2610\lib\net40\JsonFx.dll + + ..\..\lib\packages\Castle.Windsor.3.2.0\lib\net40\Castle.Windsor.dll ..\..\lib\packages\log4net.1.2.10\lib\2.0\log4net.dll - - False - ..\..\lib\netlib.Dns.dll - - - - - - ..\..\lib\TeamCitySharp.dll - - - False - ..\..\lib\zlib.net.dll - - Component Service.cs - - - - - + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + {E5C817FB-875E-44F0-AA74-461745077D09} + AutoBot.Agents.Calculator + + + {AAAF23E6-595E-4A09-8498-D8B58A8917AA} + AutoBot.Agents.PowerShell + + + {3C7C21F8-F86A-470D-8D68-87B1939C23D1} + AutoBot.ChatClients.HipChat + + + {BF08BFAC-2089-4779-8557-1D76E0DC24E5} + AutoBot.ChatClients.Skype + + + {4CA6F4E5-765D-4063-A6BE-4FD7DC9D0EF3} + AutoBot.Core + + Designer - - - Always - - - Always - - - Always -