diff --git a/Emby.Dlna/Emby.Dlna.csproj b/Emby.Dlna/Emby.Dlna.csproj index f0df7103a6..ea7e47bcf6 100644 --- a/Emby.Dlna/Emby.Dlna.csproj +++ b/Emby.Dlna/Emby.Dlna.csproj @@ -178,11 +178,11 @@ - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0-rc1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - ..\packages\System.Threading.Tasks.Extensions.4.5.0-rc1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/Emby.Dlna/packages.config b/Emby.Dlna/packages.config index ce02bd7d30..0204cc4ee4 100644 --- a/Emby.Dlna/packages.config +++ b/Emby.Dlna/packages.config @@ -2,6 +2,6 @@ - - + + \ No newline at end of file diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 479fd627ed..530bf3bc5f 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -638,8 +638,8 @@ ..\packages\SharpCompress.0.18.2\lib\net45\SharpCompress.dll - - ..\packages\SimpleInjector.4.0.12\lib\net45\SimpleInjector.dll + + ..\packages\SimpleInjector.4.3.0\lib\net45\SimpleInjector.dll ..\packages\SQLitePCL.pretty.1.1.0\lib\portable-net45+netcore45+wpa81+wp8\SQLitePCL.pretty.dll @@ -654,15 +654,15 @@ - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0-rc1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - ..\packages\System.Threading.Tasks.Extensions.4.5.0-rc1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/Emby.Server.Implementations/packages.config b/Emby.Server.Implementations/packages.config index 119194dcd2..b1d5bd462d 100644 --- a/Emby.Server.Implementations/packages.config +++ b/Emby.Server.Implementations/packages.config @@ -6,10 +6,10 @@ - + - - - + + + \ No newline at end of file diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj index 5b607ffda6..317d38c2a0 100644 --- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj +++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj @@ -149,11 +149,11 @@ - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0-rc1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - ..\packages\System.Threading.Tasks.Extensions.4.5.0-rc1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/MediaBrowser.Providers/packages.config b/MediaBrowser.Providers/packages.config index ce02bd7d30..0204cc4ee4 100644 --- a/MediaBrowser.Providers/packages.config +++ b/MediaBrowser.Providers/packages.config @@ -2,6 +2,6 @@ - - + + \ No newline at end of file diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj index 82c7bb1f33..e6bbf36fb5 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -66,8 +66,8 @@ ..\packages\SharpCompress.0.18.2\lib\net45\SharpCompress.dll - - ..\packages\SimpleInjector.4.0.12\lib\net45\SimpleInjector.dll + + ..\packages\SimpleInjector.4.3.0\lib\net45\SimpleInjector.dll ..\packages\SkiaSharp.1.58.1\lib\net45\SkiaSharp.dll @@ -83,15 +83,15 @@ - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0-rc1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - ..\packages\System.Threading.Tasks.Extensions.4.5.0-rc1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/MediaBrowser.Server.Mono/packages.config b/MediaBrowser.Server.Mono/packages.config index 3ca88a76ea..28b20accc0 100644 --- a/MediaBrowser.Server.Mono/packages.config +++ b/MediaBrowser.Server.Mono/packages.config @@ -5,11 +5,11 @@ - + - - - + + + \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 267e3f2253..40957027ac 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -92,8 +92,8 @@ ..\packages\SharpCompress.0.18.2\lib\net45\SharpCompress.dll - - ..\packages\SimpleInjector.4.0.12\lib\net45\SimpleInjector.dll + + ..\packages\SimpleInjector.4.3.0\lib\net45\SimpleInjector.dll ..\packages\SkiaSharp.1.58.1\lib\net45\SkiaSharp.dll @@ -112,16 +112,16 @@ - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0-rc1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - ..\packages\System.Threading.Tasks.Extensions.4.5.0-rc1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index f3b709443b..9515e09fdb 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -5,11 +5,11 @@ - + - - - + + + \ No newline at end of file diff --git a/SocketHttpListener/packages.config b/SocketHttpListener/packages.config index 3f827eed95..e95ee71c7f 100644 --- a/SocketHttpListener/packages.config +++ b/SocketHttpListener/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg b/packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg deleted file mode 100644 index 955c6353fc..0000000000 Binary files a/packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg and /dev/null differ diff --git a/packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt b/packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt deleted file mode 100644 index 92b6c443d3..0000000000 --- a/packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt +++ /dev/null @@ -1,128 +0,0 @@ - -MICROSOFT SOFTWARE LICENSE TERMS - - -MICROSOFT .NET LIBRARY - -These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft - -· updates, - -· supplements, - -· Internet-based services, and - -· support services - -for this software, unless other terms accompany those items. If so, those terms apply. - -BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. - - -IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. - -1. INSTALLATION AND USE RIGHTS. - -a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. - -b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. - -2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. - -a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. - -i. Right to Use and Distribute. - -· You may copy and distribute the object code form of the software. - -· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. - -ii. Distribution Requirements. For any Distributable Code you distribute, you must - -· add significant primary functionality to it in your programs; - -· require distributors and external end users to agree to terms that protect it at least as much as this agreement; - -· display your valid copyright notice on your programs; and - -· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. - -iii. Distribution Restrictions. You may not - -· alter any copyright, trademark or patent notice in the Distributable Code; - -· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; - -· include Distributable Code in malicious, deceptive or unlawful programs; or - -· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that - -· the code be disclosed or distributed in source code form; or - -· others have the right to modify it. - -3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not - -· work around any technical limitations in the software; - -· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; - -· publish the software for others to copy; - -· rent, lease or lend the software; - -· transfer the software or this agreement to any third party; or - -· use the software for commercial software hosting services. - -4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. - -5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. - -6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. - -7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. - -8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. - -9. APPLICABLE LAW. - -a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. - -b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. - -10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. - -11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - -FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. - -12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. - -This limitation applies to - -· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and - -· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. - -It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. - -Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. - -Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. - -EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. - -LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. - -Cette limitation concerne : - -· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et - -· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. - -Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. - -EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. - - diff --git a/packages/Microsoft.NETCore.Platforms.1.1.0/runtime.json b/packages/Microsoft.NETCore.Platforms.1.1.0/runtime.json deleted file mode 100644 index 54769f2662..0000000000 --- a/packages/Microsoft.NETCore.Platforms.1.1.0/runtime.json +++ /dev/null @@ -1,406 +0,0 @@ -{ - "runtimes": { - "base": { - }, - - "any": { - "#import": [ "base" ] - }, - - "win": { - "#import": [ "any" ] - }, - "win-x86": { - "#import": [ "win" ] - }, - "win-x64": { - "#import": [ "win" ] - }, - - "win7": { - "#import": [ "win" ] - }, - "win7-x86": { - "#import": [ "win7", "win-x86" ] - }, - "win7-x64": { - "#import": [ "win7", "win-x64" ] - }, - - "win8": { - "#import": [ "win7" ] - }, - "win8-x86": { - "#import": [ "win8", "win7-x86" ] - }, - "win8-x64": { - "#import": [ "win8", "win7-x64" ] - }, - "win8-arm": { - "#import": [ "win8" ] - }, - - "win81": { - "#import": [ "win8" ] - }, - "win81-x86": { - "#import": [ "win81", "win8-x86" ] - }, - "win81-x64": { - "#import": [ "win81", "win8-x64" ] - }, - "win81-arm": { - "#import": [ "win81", "win8-arm" ] - }, - - "win10": { - "#import": [ "win81" ] - }, - "win10-x86": { - "#import": [ "win10", "win81-x86" ] - }, - "win10-x64": { - "#import": [ "win10", "win81-x64" ] - }, - "win10-arm": { - "#import": [ "win10", "win81-arm" ] - }, - "win10-arm64": { - "#import": [ "win10" ] - }, - - "aot": { - "#import": [ "any" ] - }, - - "win-aot": { - "#import": [ "win", "aot" ] - }, - "win-x86-aot": { - "#import": [ "win-aot", "win-x86" ] - }, - "win-x64-aot": { - "#import": [ "win-aot", "win-x64" ] - }, - - "win7-aot": { - "#import": [ "win-aot", "win7" ] - }, - "win7-x86-aot": { - "#import": [ "win7-aot", "win7-x86" ] - }, - "win7-x64-aot": { - "#import": [ "win7-aot", "win7-x64" ] - }, - - "win8-aot": { - "#import": [ "win8", "win7-aot" ] - }, - "win8-x86-aot": { - "#import": [ "win8-aot", "win8-x86", "win7-x86-aot" ] - }, - "win8-x64-aot": { - "#import": [ "win8-aot", "win8-x64", "win7-x64-aot" ] - }, - "win8-arm-aot": { - "#import": [ "win8-aot", "win8-arm" ] - }, - - "win81-aot": { - "#import": [ "win81", "win8-aot" ] - }, - "win81-x86-aot": { - "#import": [ "win81-aot", "win81-x86", "win8-x86-aot" ] - }, - "win81-x64-aot": { - "#import": [ "win81-aot", "win81-x64", "win8-x64-aot" ] - }, - "win81-arm-aot": { - "#import": [ "win81-aot", "win81-arm", "win8-arm-aot" ] - }, - - "win10-aot": { - "#import": [ "win10", "win81-aot" ] - }, - "win10-x86-aot": { - "#import": [ "win10-aot", "win10-x86", "win81-x86-aot" ] - }, - "win10-x64-aot": { - "#import": [ "win10-aot", "win10-x64", "win81-x64-aot" ] - }, - "win10-arm-aot": { - "#import": [ "win10-aot", "win10-arm", "win81-arm-aot" ] - }, - "win10-arm64-aot": { - "#import": [ "win10-aot", "win10-arm64" ] - }, - - "unix": { - "#import": [ "any" ] - }, - "unix-x64": { - "#import": [ "unix" ] - }, - - "osx": { - "#import": [ "unix" ] - }, - "osx-x64": { - "#import": [ "osx", "unix-x64" ] - }, - - "osx.10.10": { - "#import": [ "osx" ] - }, - "osx.10.10-x64": { - "#import": [ "osx.10.10", "osx-x64" ] - }, - - "osx.10.11": { - "#import": [ "osx.10.10" ] - }, - "osx.10.11-x64": { - "#import": [ "osx.10.11", "osx.10.10-x64" ] - }, - - "osx.10.12": { - "#import": [ "osx.10.11" ] - }, - "osx.10.12-x64": { - "#import": [ "osx.10.12", "osx.10.11-x64" ] - }, - - "linux": { - "#import": [ "unix" ] - }, - "linux-x64": { - "#import": [ "linux", "unix-x64" ] - }, - - "rhel": { - "#import": [ "linux" ] - }, - "rhel-x64": { - "#import": [ "rhel", "linux-x64" ] - }, - - "rhel.7": { - "#import": [ "rhel" ] - }, - "rhel.7-x64": { - "#import": [ "rhel", "rhel-x64" ] - }, - - "rhel.7.0": { - "#import": [ "rhel.7" ] - }, - "rhel.7.0-x64": { - "#import": [ "rhel.7", "rhel.7-x64" ] - }, - - "rhel.7.1": { - "#import": [ "rhel.7.0" ] - }, - "rhel.7.1-x64": { - "#import": [ "rhel.7.0", "rhel.7.0-x64" ] - }, - - "rhel.7.2": { - "#import": [ "rhel.7.1" ] - }, - "rhel.7.2-x64": { - "#import": [ "rhel.7.1", "rhel.7.1-x64" ] - }, - - "ol": { - "#import": [ "rhel" ] - }, - "ol-x64": { - "#import": [ "ol", "rhel-x64" ] - }, - - "ol.7": { - "#import": [ "ol", "rhel.7" ] - }, - "ol.7-x64": { - "#import": [ "ol.7", "ol-x64", "rhel.7-x64" ] - }, - - "ol.7.0": { - "#import": [ "ol.7", "rhel.7.0" ] - }, - "ol.7.0-x64": { - "#import": [ "ol.7", "ol.7-x64", "rhel.7.0-x64" ] - }, - - "ol.7.1": { - "#import": [ "ol.7.0", "rhel.7.1" ] - }, - "ol.7.1-x64": { - "#import": [ "ol.7.0", "ol.7.0-x64", "rhel.7.1-x64" ] - }, - - "ol.7.2": { - "#import": [ "ol.7.1", "rhel.7.2" ] - }, - "ol.7.2-x64": { - "#import": [ "ol.7.1", "ol.7.1-x64", "rhel.7.2-x64" ] - }, - - "centos": { - "#import": [ "rhel" ] - }, - "centos-x64": { - "#import": [ "centos", "rhel-x64" ] - }, - - "centos.7": { - "#import": [ "centos", "rhel.7" ] - }, - "centos.7-x64": { - "#import": [ "centos.7", "centos-x64", "rhel.7-x64" ] - }, - - "debian": { - "#import": [ "linux" ] - }, - "debian-x64": { - "#import": [ "debian", "linux-x64" ] - }, - - "debian.8": { - "#import": [ "debian" ] - }, - "debian.8-x64": { - "#import": [ "debian.8", "debian-x64" ] - }, - - "ubuntu": { - "#import": [ "debian" ] - }, - - "ubuntu-x64": { - "#import": [ "ubuntu", "debian-x64" ] - }, - - "ubuntu.14.04": { - "#import": [ "ubuntu" ] - }, - "ubuntu.14.04-x64": { - "#import": [ "ubuntu.14.04", "ubuntu-x64" ] - }, - - "ubuntu.14.10": { - "#import": [ "ubuntu" ] - }, - "ubuntu.14.10-x64": { - "#import": [ "ubuntu.14.10", "ubuntu-x64" ] - }, - - "ubuntu.15.04": { - "#import": [ "ubuntu" ] - }, - "ubuntu.15.04-x64": { - "#import": [ "ubuntu.15.04", "ubuntu-x64" ] - }, - - "ubuntu.15.10": { - "#import": [ "ubuntu" ] - }, - "ubuntu.15.10-x64": { - "#import": [ "ubuntu.15.10", "ubuntu-x64" ] - }, - - "ubuntu.16.04": { - "#import": [ "ubuntu" ] - }, - "ubuntu.16.04-x64": { - "#import": [ "ubuntu.16.04", "ubuntu-x64" ] - }, - - "ubuntu.16.10": { - "#import": [ "ubuntu" ] - }, - "ubuntu.16.10-x64": { - "#import": [ "ubuntu.16.10", "ubuntu-x64" ] - }, - - "linuxmint.17": { - "#import": [ "ubuntu.14.04" ] - }, - "linuxmint.17-x64": { - "#import": [ "linuxmint.17", "ubuntu.14.04-x64" ] - }, - - "linuxmint.17.1": { - "#import": [ "linuxmint.17" ] - }, - "linuxmint.17.1-x64": { - "#import": [ "linuxmint.17.1", "linuxmint.17-x64" ] - }, - - "linuxmint.17.2": { - "#import": [ "linuxmint.17.1" ] - }, - "linuxmint.17.2-x64": { - "#import": [ "linuxmint.17.2", "linuxmint.17.1-x64" ] - }, - - "linuxmint.17.3": { - "#import": [ "linuxmint.17.2" ] - }, - "linuxmint.17.3-x64": { - "#import": [ "linuxmint.17.3", "linuxmint.17.2-x64" ] - }, - - "linuxmint.18": { - "#import": [ "ubuntu.16.04" ] - }, - "linuxmint.18-x64": { - "#import": [ "linuxmint.18", "ubuntu.16.04-x64" ] - }, - - "fedora": { - "#import": [ "linux" ] - }, - "fedora-x64": { - "#import": [ "fedora", "linux-x64" ] - }, - - "fedora.23": { - "#import": [ "fedora" ] - }, - "fedora.23-x64": { - "#import": [ "fedora.23", "fedora-x64" ] - }, - - "fedora.24": { - "#import": [ "fedora" ] - }, - "fedora.24-x64": { - "#import": [ "fedora.24", "fedora-x64" ] - }, - - "opensuse": { - "#import": [ "linux" ] - }, - "opensuse-x64": { - "#import": [ "opensuse", "linux-x64" ] - }, - - "opensuse.13.2": { - "#import": [ "opensuse" ] - }, - "opensuse.13.2-x64": { - "#import": [ "opensuse.13.2", "opensuse-x64" ] - }, - - "opensuse.42.1": { - "#import": [ "opensuse" ] - }, - "opensuse.42.1-x64": { - "#import": [ "opensuse.42.1", "opensuse-x64" ] - } - } - } - diff --git a/packages/Microsoft.NETCore.Platforms.2.1.0/.signature.p7s b/packages/Microsoft.NETCore.Platforms.2.1.0/.signature.p7s new file mode 100644 index 0000000000..6cc04bf13f Binary files /dev/null and b/packages/Microsoft.NETCore.Platforms.2.1.0/.signature.p7s differ diff --git a/packages/System.Numerics.Vectors.4.4.0/LICENSE.TXT b/packages/Microsoft.NETCore.Platforms.2.1.0/LICENSE.TXT similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/LICENSE.TXT rename to packages/Microsoft.NETCore.Platforms.2.1.0/LICENSE.TXT diff --git a/packages/Microsoft.NETCore.Platforms.2.1.0/Microsoft.NETCore.Platforms.2.1.0.nupkg b/packages/Microsoft.NETCore.Platforms.2.1.0/Microsoft.NETCore.Platforms.2.1.0.nupkg new file mode 100644 index 0000000000..2ba05d3b7f Binary files /dev/null and b/packages/Microsoft.NETCore.Platforms.2.1.0/Microsoft.NETCore.Platforms.2.1.0.nupkg differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/THIRD-PARTY-NOTICES.TXT b/packages/Microsoft.NETCore.Platforms.2.1.0/THIRD-PARTY-NOTICES.TXT similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/THIRD-PARTY-NOTICES.TXT rename to packages/Microsoft.NETCore.Platforms.2.1.0/THIRD-PARTY-NOTICES.TXT diff --git a/packages/Microsoft.NETCore.Platforms.1.1.0/lib/netstandard1.0/_._ b/packages/Microsoft.NETCore.Platforms.2.1.0/lib/netstandard1.0/_._ similarity index 100% rename from packages/Microsoft.NETCore.Platforms.1.1.0/lib/netstandard1.0/_._ rename to packages/Microsoft.NETCore.Platforms.2.1.0/lib/netstandard1.0/_._ diff --git a/packages/Microsoft.NETCore.Platforms.2.1.0/runtime.json b/packages/Microsoft.NETCore.Platforms.2.1.0/runtime.json new file mode 100644 index 0000000000..30f99f8e58 --- /dev/null +++ b/packages/Microsoft.NETCore.Platforms.2.1.0/runtime.json @@ -0,0 +1,3027 @@ +{ + "runtimes": { + "alpine": { + "#import": [ + "linux-musl" + ] + }, + "alpine-corert": { + "#import": [ + "alpine", + "linux-musl-corert" + ] + }, + "alpine-x64": { + "#import": [ + "alpine", + "linux-musl-x64" + ] + }, + "alpine-x64-corert": { + "#import": [ + "alpine-corert", + "alpine-x64", + "linux-musl-x64-corert" + ] + }, + "alpine.3.6": { + "#import": [ + "alpine" + ] + }, + "alpine.3.6-corert": { + "#import": [ + "alpine.3.6", + "alpine-corert" + ] + }, + "alpine.3.6-x64": { + "#import": [ + "alpine.3.6", + "alpine-x64" + ] + }, + "alpine.3.6-x64-corert": { + "#import": [ + "alpine.3.6-corert", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64-corert" + ] + }, + "alpine.3.7": { + "#import": [ + "alpine.3.6" + ] + }, + "alpine.3.7-corert": { + "#import": [ + "alpine.3.7", + "alpine.3.6-corert" + ] + }, + "alpine.3.7-x64": { + "#import": [ + "alpine.3.7", + "alpine.3.6-x64" + ] + }, + "alpine.3.7-x64-corert": { + "#import": [ + "alpine.3.7-corert", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64-corert" + ] + }, + "android": { + "#import": [ + "linux" + ] + }, + "android-arm": { + "#import": [ + "android", + "linux-arm" + ] + }, + "android-arm-corert": { + "#import": [ + "android-corert", + "android-arm", + "linux-arm-corert" + ] + }, + "android-arm64": { + "#import": [ + "android", + "linux-arm64" + ] + }, + "android-arm64-corert": { + "#import": [ + "android-corert", + "android-arm64", + "linux-arm64-corert" + ] + }, + "android-corert": { + "#import": [ + "android", + "linux-corert" + ] + }, + "android.21": { + "#import": [ + "android" + ] + }, + "android.21-arm": { + "#import": [ + "android.21", + "android-arm" + ] + }, + "android.21-arm-corert": { + "#import": [ + "android.21-corert", + "android.21-arm", + "android.21", + "android-arm-corert" + ] + }, + "android.21-arm64": { + "#import": [ + "android.21", + "android-arm64" + ] + }, + "android.21-arm64-corert": { + "#import": [ + "android.21-corert", + "android.21-arm64", + "android.21", + "android-arm64-corert" + ] + }, + "android.21-corert": { + "#import": [ + "android.21", + "android-corert" + ] + }, + "any": { + "#import": [ + "base" + ] + }, + "aot": { + "#import": [ + "any" + ] + }, + "base": { + "#import": [] + }, + "centos": { + "#import": [ + "rhel" + ] + }, + "centos-corert": { + "#import": [ + "centos", + "rhel-corert" + ] + }, + "centos-x64": { + "#import": [ + "centos", + "rhel-x64" + ] + }, + "centos-x64-corert": { + "#import": [ + "centos-corert", + "centos-x64", + "rhel-x64-corert" + ] + }, + "centos.7": { + "#import": [ + "centos", + "rhel.7" + ] + }, + "centos.7-corert": { + "#import": [ + "centos.7", + "centos-corert", + "rhel.7-corert" + ] + }, + "centos.7-x64": { + "#import": [ + "centos.7", + "centos-x64", + "rhel.7-x64" + ] + }, + "centos.7-x64-corert": { + "#import": [ + "centos.7-corert", + "centos.7-x64", + "centos.7", + "centos-x64-corert" + ] + }, + "corert": { + "#import": [ + "any" + ] + }, + "debian": { + "#import": [ + "linux" + ] + }, + "debian-arm": { + "#import": [ + "debian", + "linux-arm" + ] + }, + "debian-arm-corert": { + "#import": [ + "debian-corert", + "debian-arm", + "linux-arm-corert" + ] + }, + "debian-arm64": { + "#import": [ + "debian", + "linux-arm64" + ] + }, + "debian-arm64-corert": { + "#import": [ + "debian-corert", + "debian-arm64", + "linux-arm64-corert" + ] + }, + "debian-armel": { + "#import": [ + "debian", + "linux-armel" + ] + }, + "debian-armel-corert": { + "#import": [ + "debian-corert", + "debian-armel", + "linux-armel-corert" + ] + }, + "debian-corert": { + "#import": [ + "debian", + "linux-corert" + ] + }, + "debian-x64": { + "#import": [ + "debian", + "linux-x64" + ] + }, + "debian-x64-corert": { + "#import": [ + "debian-corert", + "debian-x64", + "linux-x64-corert" + ] + }, + "debian-x86": { + "#import": [ + "debian", + "linux-x86" + ] + }, + "debian-x86-corert": { + "#import": [ + "debian-corert", + "debian-x86", + "linux-x86-corert" + ] + }, + "debian.8": { + "#import": [ + "debian" + ] + }, + "debian.8-arm": { + "#import": [ + "debian.8", + "debian-arm" + ] + }, + "debian.8-arm-corert": { + "#import": [ + "debian.8-corert", + "debian.8-arm", + "debian.8", + "debian-arm-corert" + ] + }, + "debian.8-arm64": { + "#import": [ + "debian.8", + "debian-arm64" + ] + }, + "debian.8-arm64-corert": { + "#import": [ + "debian.8-corert", + "debian.8-arm64", + "debian.8", + "debian-arm64-corert" + ] + }, + "debian.8-armel": { + "#import": [ + "debian.8", + "debian-armel" + ] + }, + "debian.8-armel-corert": { + "#import": [ + "debian.8-corert", + "debian.8-armel", + "debian.8", + "debian-armel-corert" + ] + }, + "debian.8-corert": { + "#import": [ + "debian.8", + "debian-corert" + ] + }, + "debian.8-x64": { + "#import": [ + "debian.8", + "debian-x64" + ] + }, + "debian.8-x64-corert": { + "#import": [ + "debian.8-corert", + "debian.8-x64", + "debian.8", + "debian-x64-corert" + ] + }, + "debian.8-x86": { + "#import": [ + "debian.8", + "debian-x86" + ] + }, + "debian.8-x86-corert": { + "#import": [ + "debian.8-corert", + "debian.8-x86", + "debian.8", + "debian-x86-corert" + ] + }, + "debian.9": { + "#import": [ + "debian" + ] + }, + "debian.9-arm": { + "#import": [ + "debian.9", + "debian-arm" + ] + }, + "debian.9-arm-corert": { + "#import": [ + "debian.9-corert", + "debian.9-arm", + "debian.9", + "debian-arm-corert" + ] + }, + "debian.9-arm64": { + "#import": [ + "debian.9", + "debian-arm64" + ] + }, + "debian.9-arm64-corert": { + "#import": [ + "debian.9-corert", + "debian.9-arm64", + "debian.9", + "debian-arm64-corert" + ] + }, + "debian.9-armel": { + "#import": [ + "debian.9", + "debian-armel" + ] + }, + "debian.9-armel-corert": { + "#import": [ + "debian.9-corert", + "debian.9-armel", + "debian.9", + "debian-armel-corert" + ] + }, + "debian.9-corert": { + "#import": [ + "debian.9", + "debian-corert" + ] + }, + "debian.9-x64": { + "#import": [ + "debian.9", + "debian-x64" + ] + }, + "debian.9-x64-corert": { + "#import": [ + "debian.9-corert", + "debian.9-x64", + "debian.9", + "debian-x64-corert" + ] + }, + "debian.9-x86": { + "#import": [ + "debian.9", + "debian-x86" + ] + }, + "debian.9-x86-corert": { + "#import": [ + "debian.9-corert", + "debian.9-x86", + "debian.9", + "debian-x86-corert" + ] + }, + "fedora": { + "#import": [ + "linux" + ] + }, + "fedora-corert": { + "#import": [ + "fedora", + "linux-corert" + ] + }, + "fedora-x64": { + "#import": [ + "fedora", + "linux-x64" + ] + }, + "fedora-x64-corert": { + "#import": [ + "fedora-corert", + "fedora-x64", + "linux-x64-corert" + ] + }, + "fedora.23": { + "#import": [ + "fedora" + ] + }, + "fedora.23-corert": { + "#import": [ + "fedora.23", + "fedora-corert" + ] + }, + "fedora.23-x64": { + "#import": [ + "fedora.23", + "fedora-x64" + ] + }, + "fedora.23-x64-corert": { + "#import": [ + "fedora.23-corert", + "fedora.23-x64", + "fedora.23", + "fedora-x64-corert" + ] + }, + "fedora.24": { + "#import": [ + "fedora" + ] + }, + "fedora.24-corert": { + "#import": [ + "fedora.24", + "fedora-corert" + ] + }, + "fedora.24-x64": { + "#import": [ + "fedora.24", + "fedora-x64" + ] + }, + "fedora.24-x64-corert": { + "#import": [ + "fedora.24-corert", + "fedora.24-x64", + "fedora.24", + "fedora-x64-corert" + ] + }, + "fedora.25": { + "#import": [ + "fedora" + ] + }, + "fedora.25-corert": { + "#import": [ + "fedora.25", + "fedora-corert" + ] + }, + "fedora.25-x64": { + "#import": [ + "fedora.25", + "fedora-x64" + ] + }, + "fedora.25-x64-corert": { + "#import": [ + "fedora.25-corert", + "fedora.25-x64", + "fedora.25", + "fedora-x64-corert" + ] + }, + "fedora.26": { + "#import": [ + "fedora" + ] + }, + "fedora.26-corert": { + "#import": [ + "fedora.26", + "fedora-corert" + ] + }, + "fedora.26-x64": { + "#import": [ + "fedora.26", + "fedora-x64" + ] + }, + "fedora.26-x64-corert": { + "#import": [ + "fedora.26-corert", + "fedora.26-x64", + "fedora.26", + "fedora-x64-corert" + ] + }, + "fedora.27": { + "#import": [ + "fedora" + ] + }, + "fedora.27-corert": { + "#import": [ + "fedora.27", + "fedora-corert" + ] + }, + "fedora.27-x64": { + "#import": [ + "fedora.27", + "fedora-x64" + ] + }, + "fedora.27-x64-corert": { + "#import": [ + "fedora.27-corert", + "fedora.27-x64", + "fedora.27", + "fedora-x64-corert" + ] + }, + "fedora.28": { + "#import": [ + "fedora" + ] + }, + "fedora.28-corert": { + "#import": [ + "fedora.28", + "fedora-corert" + ] + }, + "fedora.28-x64": { + "#import": [ + "fedora.28", + "fedora-x64" + ] + }, + "fedora.28-x64-corert": { + "#import": [ + "fedora.28-corert", + "fedora.28-x64", + "fedora.28", + "fedora-x64-corert" + ] + }, + "gentoo": { + "#import": [ + "linux" + ] + }, + "gentoo-corert": { + "#import": [ + "gentoo", + "linux-corert" + ] + }, + "gentoo-x64": { + "#import": [ + "gentoo", + "linux-x64" + ] + }, + "gentoo-x64-corert": { + "#import": [ + "gentoo-corert", + "gentoo-x64", + "linux-x64-corert" + ] + }, + "linux": { + "#import": [ + "unix" + ] + }, + "linux-arm": { + "#import": [ + "linux", + "unix-arm" + ] + }, + "linux-arm-corert": { + "#import": [ + "linux-corert", + "linux-arm", + "unix-arm-corert" + ] + }, + "linux-arm64": { + "#import": [ + "linux", + "unix-arm64" + ] + }, + "linux-arm64-corert": { + "#import": [ + "linux-corert", + "linux-arm64", + "unix-arm64-corert" + ] + }, + "linux-armel": { + "#import": [ + "linux", + "unix-armel" + ] + }, + "linux-armel-corert": { + "#import": [ + "linux-corert", + "linux-armel", + "unix-armel-corert" + ] + }, + "linux-corert": { + "#import": [ + "linux", + "unix-corert" + ] + }, + "linux-musl": { + "#import": [ + "linux" + ] + }, + "linux-musl-arm": { + "#import": [ + "linux-musl", + "linux-arm" + ] + }, + "linux-musl-arm-corert": { + "#import": [ + "linux-musl-corert", + "linux-musl-arm", + "linux-arm-corert" + ] + }, + "linux-musl-arm64": { + "#import": [ + "linux-musl", + "linux-arm64" + ] + }, + "linux-musl-arm64-corert": { + "#import": [ + "linux-musl-corert", + "linux-musl-arm64", + "linux-arm64-corert" + ] + }, + "linux-musl-armel": { + "#import": [ + "linux-musl", + "linux-armel" + ] + }, + "linux-musl-armel-corert": { + "#import": [ + "linux-musl-corert", + "linux-musl-armel", + "linux-armel-corert" + ] + }, + "linux-musl-corert": { + "#import": [ + "linux-musl", + "linux-corert" + ] + }, + "linux-musl-x64": { + "#import": [ + "linux-musl", + "linux-x64" + ] + }, + "linux-musl-x64-corert": { + "#import": [ + "linux-musl-corert", + "linux-musl-x64", + "linux-x64-corert" + ] + }, + "linux-musl-x86": { + "#import": [ + "linux-musl", + "linux-x86" + ] + }, + "linux-musl-x86-corert": { + "#import": [ + "linux-musl-corert", + "linux-musl-x86", + "linux-x86-corert" + ] + }, + "linux-x64": { + "#import": [ + "linux", + "unix-x64" + ] + }, + "linux-x64-corert": { + "#import": [ + "linux-corert", + "linux-x64", + "unix-x64-corert" + ] + }, + "linux-x86": { + "#import": [ + "linux", + "unix-x86" + ] + }, + "linux-x86-corert": { + "#import": [ + "linux-corert", + "linux-x86", + "unix-x86-corert" + ] + }, + "linuxmint.17": { + "#import": [ + "ubuntu.14.04" + ] + }, + "linuxmint.17-corert": { + "#import": [ + "linuxmint.17", + "ubuntu.14.04-corert" + ] + }, + "linuxmint.17-x64": { + "#import": [ + "linuxmint.17", + "ubuntu.14.04-x64" + ] + }, + "linuxmint.17-x64-corert": { + "#import": [ + "linuxmint.17-corert", + "linuxmint.17-x64", + "ubuntu.14.04-x64-corert" + ] + }, + "linuxmint.17.1": { + "#import": [ + "linuxmint.17" + ] + }, + "linuxmint.17.1-corert": { + "#import": [ + "linuxmint.17.1", + "linuxmint.17-corert" + ] + }, + "linuxmint.17.1-x64": { + "#import": [ + "linuxmint.17.1", + "linuxmint.17-x64" + ] + }, + "linuxmint.17.1-x64-corert": { + "#import": [ + "linuxmint.17.1-corert", + "linuxmint.17.1-x64", + "linuxmint.17.1", + "linuxmint.17-x64-corert" + ] + }, + "linuxmint.17.2": { + "#import": [ + "linuxmint.17.1" + ] + }, + "linuxmint.17.2-corert": { + "#import": [ + "linuxmint.17.2", + "linuxmint.17.1-corert" + ] + }, + "linuxmint.17.2-x64": { + "#import": [ + "linuxmint.17.2", + "linuxmint.17.1-x64" + ] + }, + "linuxmint.17.2-x64-corert": { + "#import": [ + "linuxmint.17.2-corert", + "linuxmint.17.2-x64", + "linuxmint.17.2", + "linuxmint.17.1-x64-corert" + ] + }, + "linuxmint.17.3": { + "#import": [ + "linuxmint.17.2" + ] + }, + "linuxmint.17.3-corert": { + "#import": [ + "linuxmint.17.3", + "linuxmint.17.2-corert" + ] + }, + "linuxmint.17.3-x64": { + "#import": [ + "linuxmint.17.3", + "linuxmint.17.2-x64" + ] + }, + "linuxmint.17.3-x64-corert": { + "#import": [ + "linuxmint.17.3-corert", + "linuxmint.17.3-x64", + "linuxmint.17.3", + "linuxmint.17.2-x64-corert" + ] + }, + "linuxmint.18": { + "#import": [ + "ubuntu.16.04" + ] + }, + "linuxmint.18-corert": { + "#import": [ + "linuxmint.18", + "ubuntu.16.04-corert" + ] + }, + "linuxmint.18-x64": { + "#import": [ + "linuxmint.18", + "ubuntu.16.04-x64" + ] + }, + "linuxmint.18-x64-corert": { + "#import": [ + "linuxmint.18-corert", + "linuxmint.18-x64", + "ubuntu.16.04-x64-corert" + ] + }, + "linuxmint.18.1": { + "#import": [ + "linuxmint.18" + ] + }, + "linuxmint.18.1-corert": { + "#import": [ + "linuxmint.18.1", + "linuxmint.18-corert" + ] + }, + "linuxmint.18.1-x64": { + "#import": [ + "linuxmint.18.1", + "linuxmint.18-x64" + ] + }, + "linuxmint.18.1-x64-corert": { + "#import": [ + "linuxmint.18.1-corert", + "linuxmint.18.1-x64", + "linuxmint.18.1", + "linuxmint.18-x64-corert" + ] + }, + "linuxmint.18.2": { + "#import": [ + "linuxmint.18.1" + ] + }, + "linuxmint.18.2-corert": { + "#import": [ + "linuxmint.18.2", + "linuxmint.18.1-corert" + ] + }, + "linuxmint.18.2-x64": { + "#import": [ + "linuxmint.18.2", + "linuxmint.18.1-x64" + ] + }, + "linuxmint.18.2-x64-corert": { + "#import": [ + "linuxmint.18.2-corert", + "linuxmint.18.2-x64", + "linuxmint.18.2", + "linuxmint.18.1-x64-corert" + ] + }, + "linuxmint.18.3": { + "#import": [ + "linuxmint.18.2" + ] + }, + "linuxmint.18.3-corert": { + "#import": [ + "linuxmint.18.3", + "linuxmint.18.2-corert" + ] + }, + "linuxmint.18.3-x64": { + "#import": [ + "linuxmint.18.3", + "linuxmint.18.2-x64" + ] + }, + "linuxmint.18.3-x64-corert": { + "#import": [ + "linuxmint.18.3-corert", + "linuxmint.18.3-x64", + "linuxmint.18.3", + "linuxmint.18.2-x64-corert" + ] + }, + "linuxmint.19": { + "#import": [ + "ubuntu.18.04" + ] + }, + "linuxmint.19-corert": { + "#import": [ + "linuxmint.19", + "ubuntu.18.04-corert" + ] + }, + "linuxmint.19-x64": { + "#import": [ + "linuxmint.19", + "ubuntu.18.04-x64" + ] + }, + "linuxmint.19-x64-corert": { + "#import": [ + "linuxmint.19-corert", + "linuxmint.19-x64", + "ubuntu.18.04-x64-corert" + ] + }, + "ol": { + "#import": [ + "rhel" + ] + }, + "ol-corert": { + "#import": [ + "ol", + "rhel-corert" + ] + }, + "ol-x64": { + "#import": [ + "ol", + "rhel-x64" + ] + }, + "ol-x64-corert": { + "#import": [ + "ol-corert", + "ol-x64", + "rhel-x64-corert" + ] + }, + "ol.7": { + "#import": [ + "ol", + "rhel.7" + ] + }, + "ol.7-corert": { + "#import": [ + "ol.7", + "ol-corert", + "rhel.7-corert" + ] + }, + "ol.7-x64": { + "#import": [ + "ol.7", + "ol-x64", + "rhel.7-x64" + ] + }, + "ol.7-x64-corert": { + "#import": [ + "ol.7-corert", + "ol.7-x64", + "ol.7", + "ol-x64-corert" + ] + }, + "ol.7.0": { + "#import": [ + "ol.7", + "rhel.7.0" + ] + }, + "ol.7.0-corert": { + "#import": [ + "ol.7.0", + "ol.7-corert", + "rhel.7.0-corert" + ] + }, + "ol.7.0-x64": { + "#import": [ + "ol.7.0", + "ol.7-x64", + "rhel.7.0-x64" + ] + }, + "ol.7.0-x64-corert": { + "#import": [ + "ol.7.0-corert", + "ol.7.0-x64", + "ol.7.0", + "ol.7-x64-corert" + ] + }, + "ol.7.1": { + "#import": [ + "ol.7.0", + "rhel.7.1" + ] + }, + "ol.7.1-corert": { + "#import": [ + "ol.7.1", + "ol.7.0-corert", + "rhel.7.1-corert" + ] + }, + "ol.7.1-x64": { + "#import": [ + "ol.7.1", + "ol.7.0-x64", + "rhel.7.1-x64" + ] + }, + "ol.7.1-x64-corert": { + "#import": [ + "ol.7.1-corert", + "ol.7.1-x64", + "ol.7.1", + "ol.7.0-x64-corert" + ] + }, + "ol.7.2": { + "#import": [ + "ol.7.1", + "rhel.7.2" + ] + }, + "ol.7.2-corert": { + "#import": [ + "ol.7.2", + "ol.7.1-corert", + "rhel.7.2-corert" + ] + }, + "ol.7.2-x64": { + "#import": [ + "ol.7.2", + "ol.7.1-x64", + "rhel.7.2-x64" + ] + }, + "ol.7.2-x64-corert": { + "#import": [ + "ol.7.2-corert", + "ol.7.2-x64", + "ol.7.2", + "ol.7.1-x64-corert" + ] + }, + "ol.7.3": { + "#import": [ + "ol.7.2", + "rhel.7.3" + ] + }, + "ol.7.3-corert": { + "#import": [ + "ol.7.3", + "ol.7.2-corert", + "rhel.7.3-corert" + ] + }, + "ol.7.3-x64": { + "#import": [ + "ol.7.3", + "ol.7.2-x64", + "rhel.7.3-x64" + ] + }, + "ol.7.3-x64-corert": { + "#import": [ + "ol.7.3-corert", + "ol.7.3-x64", + "ol.7.3", + "ol.7.2-x64-corert" + ] + }, + "ol.7.4": { + "#import": [ + "ol.7.3", + "rhel.7.4" + ] + }, + "ol.7.4-corert": { + "#import": [ + "ol.7.4", + "ol.7.3-corert", + "rhel.7.4-corert" + ] + }, + "ol.7.4-x64": { + "#import": [ + "ol.7.4", + "ol.7.3-x64", + "rhel.7.4-x64" + ] + }, + "ol.7.4-x64-corert": { + "#import": [ + "ol.7.4-corert", + "ol.7.4-x64", + "ol.7.4", + "ol.7.3-x64-corert" + ] + }, + "opensuse": { + "#import": [ + "linux" + ] + }, + "opensuse-corert": { + "#import": [ + "opensuse", + "linux-corert" + ] + }, + "opensuse-x64": { + "#import": [ + "opensuse", + "linux-x64" + ] + }, + "opensuse-x64-corert": { + "#import": [ + "opensuse-corert", + "opensuse-x64", + "linux-x64-corert" + ] + }, + "opensuse.13.2": { + "#import": [ + "opensuse" + ] + }, + "opensuse.13.2-corert": { + "#import": [ + "opensuse.13.2", + "opensuse-corert" + ] + }, + "opensuse.13.2-x64": { + "#import": [ + "opensuse.13.2", + "opensuse-x64" + ] + }, + "opensuse.13.2-x64-corert": { + "#import": [ + "opensuse.13.2-corert", + "opensuse.13.2-x64", + "opensuse.13.2", + "opensuse-x64-corert" + ] + }, + "opensuse.42.1": { + "#import": [ + "opensuse" + ] + }, + "opensuse.42.1-corert": { + "#import": [ + "opensuse.42.1", + "opensuse-corert" + ] + }, + "opensuse.42.1-x64": { + "#import": [ + "opensuse.42.1", + "opensuse-x64" + ] + }, + "opensuse.42.1-x64-corert": { + "#import": [ + "opensuse.42.1-corert", + "opensuse.42.1-x64", + "opensuse.42.1", + "opensuse-x64-corert" + ] + }, + "opensuse.42.2": { + "#import": [ + "opensuse" + ] + }, + "opensuse.42.2-corert": { + "#import": [ + "opensuse.42.2", + "opensuse-corert" + ] + }, + "opensuse.42.2-x64": { + "#import": [ + "opensuse.42.2", + "opensuse-x64" + ] + }, + "opensuse.42.2-x64-corert": { + "#import": [ + "opensuse.42.2-corert", + "opensuse.42.2-x64", + "opensuse.42.2", + "opensuse-x64-corert" + ] + }, + "opensuse.42.3": { + "#import": [ + "opensuse" + ] + }, + "opensuse.42.3-corert": { + "#import": [ + "opensuse.42.3", + "opensuse-corert" + ] + }, + "opensuse.42.3-x64": { + "#import": [ + "opensuse.42.3", + "opensuse-x64" + ] + }, + "opensuse.42.3-x64-corert": { + "#import": [ + "opensuse.42.3-corert", + "opensuse.42.3-x64", + "opensuse.42.3", + "opensuse-x64-corert" + ] + }, + "osx": { + "#import": [ + "unix" + ] + }, + "osx-corert": { + "#import": [ + "osx", + "unix-corert" + ] + }, + "osx-x64": { + "#import": [ + "osx", + "unix-x64" + ] + }, + "osx-x64-corert": { + "#import": [ + "osx-corert", + "osx-x64", + "unix-x64-corert" + ] + }, + "osx.10.10": { + "#import": [ + "osx" + ] + }, + "osx.10.10-corert": { + "#import": [ + "osx.10.10", + "osx-corert" + ] + }, + "osx.10.10-x64": { + "#import": [ + "osx.10.10", + "osx-x64" + ] + }, + "osx.10.10-x64-corert": { + "#import": [ + "osx.10.10-corert", + "osx.10.10-x64", + "osx.10.10", + "osx-x64-corert" + ] + }, + "osx.10.11": { + "#import": [ + "osx.10.10" + ] + }, + "osx.10.11-corert": { + "#import": [ + "osx.10.11", + "osx.10.10-corert" + ] + }, + "osx.10.11-x64": { + "#import": [ + "osx.10.11", + "osx.10.10-x64" + ] + }, + "osx.10.11-x64-corert": { + "#import": [ + "osx.10.11-corert", + "osx.10.11-x64", + "osx.10.11", + "osx.10.10-x64-corert" + ] + }, + "osx.10.12": { + "#import": [ + "osx.10.11" + ] + }, + "osx.10.12-corert": { + "#import": [ + "osx.10.12", + "osx.10.11-corert" + ] + }, + "osx.10.12-x64": { + "#import": [ + "osx.10.12", + "osx.10.11-x64" + ] + }, + "osx.10.12-x64-corert": { + "#import": [ + "osx.10.12-corert", + "osx.10.12-x64", + "osx.10.12", + "osx.10.11-x64-corert" + ] + }, + "osx.10.13": { + "#import": [ + "osx.10.12" + ] + }, + "osx.10.13-corert": { + "#import": [ + "osx.10.13", + "osx.10.12-corert" + ] + }, + "osx.10.13-x64": { + "#import": [ + "osx.10.13", + "osx.10.12-x64" + ] + }, + "osx.10.13-x64-corert": { + "#import": [ + "osx.10.13-corert", + "osx.10.13-x64", + "osx.10.13", + "osx.10.12-x64-corert" + ] + }, + "rhel": { + "#import": [ + "linux" + ] + }, + "rhel-corert": { + "#import": [ + "rhel", + "linux-corert" + ] + }, + "rhel-x64": { + "#import": [ + "rhel", + "linux-x64" + ] + }, + "rhel-x64-corert": { + "#import": [ + "rhel-corert", + "rhel-x64", + "linux-x64-corert" + ] + }, + "rhel.6": { + "#import": [ + "rhel" + ] + }, + "rhel.6-corert": { + "#import": [ + "rhel.6", + "rhel-corert" + ] + }, + "rhel.6-x64": { + "#import": [ + "rhel.6", + "rhel-x64" + ] + }, + "rhel.6-x64-corert": { + "#import": [ + "rhel.6-corert", + "rhel.6-x64", + "rhel.6", + "rhel-x64-corert" + ] + }, + "rhel.7": { + "#import": [ + "rhel" + ] + }, + "rhel.7-corert": { + "#import": [ + "rhel.7", + "rhel-corert" + ] + }, + "rhel.7-x64": { + "#import": [ + "rhel.7", + "rhel-x64" + ] + }, + "rhel.7-x64-corert": { + "#import": [ + "rhel.7-corert", + "rhel.7-x64", + "rhel.7", + "rhel-x64-corert" + ] + }, + "rhel.7.0": { + "#import": [ + "rhel.7" + ] + }, + "rhel.7.0-corert": { + "#import": [ + "rhel.7.0", + "rhel.7-corert" + ] + }, + "rhel.7.0-x64": { + "#import": [ + "rhel.7.0", + "rhel.7-x64" + ] + }, + "rhel.7.0-x64-corert": { + "#import": [ + "rhel.7.0-corert", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64-corert" + ] + }, + "rhel.7.1": { + "#import": [ + "rhel.7.0" + ] + }, + "rhel.7.1-corert": { + "#import": [ + "rhel.7.1", + "rhel.7.0-corert" + ] + }, + "rhel.7.1-x64": { + "#import": [ + "rhel.7.1", + "rhel.7.0-x64" + ] + }, + "rhel.7.1-x64-corert": { + "#import": [ + "rhel.7.1-corert", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64-corert" + ] + }, + "rhel.7.2": { + "#import": [ + "rhel.7.1" + ] + }, + "rhel.7.2-corert": { + "#import": [ + "rhel.7.2", + "rhel.7.1-corert" + ] + }, + "rhel.7.2-x64": { + "#import": [ + "rhel.7.2", + "rhel.7.1-x64" + ] + }, + "rhel.7.2-x64-corert": { + "#import": [ + "rhel.7.2-corert", + "rhel.7.2-x64", + "rhel.7.2", + "rhel.7.1-x64-corert" + ] + }, + "rhel.7.3": { + "#import": [ + "rhel.7.2" + ] + }, + "rhel.7.3-corert": { + "#import": [ + "rhel.7.3", + "rhel.7.2-corert" + ] + }, + "rhel.7.3-x64": { + "#import": [ + "rhel.7.3", + "rhel.7.2-x64" + ] + }, + "rhel.7.3-x64-corert": { + "#import": [ + "rhel.7.3-corert", + "rhel.7.3-x64", + "rhel.7.3", + "rhel.7.2-x64-corert" + ] + }, + "rhel.7.4": { + "#import": [ + "rhel.7.3" + ] + }, + "rhel.7.4-corert": { + "#import": [ + "rhel.7.4", + "rhel.7.3-corert" + ] + }, + "rhel.7.4-x64": { + "#import": [ + "rhel.7.4", + "rhel.7.3-x64" + ] + }, + "rhel.7.4-x64-corert": { + "#import": [ + "rhel.7.4-corert", + "rhel.7.4-x64", + "rhel.7.4", + "rhel.7.3-x64-corert" + ] + }, + "sles": { + "#import": [ + "linux" + ] + }, + "sles-corert": { + "#import": [ + "sles", + "linux-corert" + ] + }, + "sles-x64": { + "#import": [ + "sles", + "linux-x64" + ] + }, + "sles-x64-corert": { + "#import": [ + "sles-corert", + "sles-x64", + "linux-x64-corert" + ] + }, + "sles.12": { + "#import": [ + "sles" + ] + }, + "sles.12-corert": { + "#import": [ + "sles.12", + "sles-corert" + ] + }, + "sles.12-x64": { + "#import": [ + "sles.12", + "sles-x64" + ] + }, + "sles.12-x64-corert": { + "#import": [ + "sles.12-corert", + "sles.12-x64", + "sles.12", + "sles-x64-corert" + ] + }, + "sles.12.1": { + "#import": [ + "sles.12" + ] + }, + "sles.12.1-corert": { + "#import": [ + "sles.12.1", + "sles.12-corert" + ] + }, + "sles.12.1-x64": { + "#import": [ + "sles.12.1", + "sles.12-x64" + ] + }, + "sles.12.1-x64-corert": { + "#import": [ + "sles.12.1-corert", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64-corert" + ] + }, + "sles.12.2": { + "#import": [ + "sles.12.1" + ] + }, + "sles.12.2-corert": { + "#import": [ + "sles.12.2", + "sles.12.1-corert" + ] + }, + "sles.12.2-x64": { + "#import": [ + "sles.12.2", + "sles.12.1-x64" + ] + }, + "sles.12.2-x64-corert": { + "#import": [ + "sles.12.2-corert", + "sles.12.2-x64", + "sles.12.2", + "sles.12.1-x64-corert" + ] + }, + "sles.12.3": { + "#import": [ + "sles.12.2" + ] + }, + "sles.12.3-corert": { + "#import": [ + "sles.12.3", + "sles.12.2-corert" + ] + }, + "sles.12.3-x64": { + "#import": [ + "sles.12.3", + "sles.12.2-x64" + ] + }, + "sles.12.3-x64-corert": { + "#import": [ + "sles.12.3-corert", + "sles.12.3-x64", + "sles.12.3", + "sles.12.2-x64-corert" + ] + }, + "tizen": { + "#import": [ + "linux" + ] + }, + "tizen-armel": { + "#import": [ + "tizen", + "linux-armel" + ] + }, + "tizen-armel-corert": { + "#import": [ + "tizen-corert", + "tizen-armel", + "linux-armel-corert" + ] + }, + "tizen-corert": { + "#import": [ + "tizen", + "linux-corert" + ] + }, + "tizen.4.0.0": { + "#import": [ + "tizen" + ] + }, + "tizen.4.0.0-armel": { + "#import": [ + "tizen.4.0.0", + "tizen-armel" + ] + }, + "tizen.4.0.0-armel-corert": { + "#import": [ + "tizen.4.0.0-corert", + "tizen.4.0.0-armel", + "tizen.4.0.0", + "tizen-armel-corert" + ] + }, + "tizen.4.0.0-corert": { + "#import": [ + "tizen.4.0.0", + "tizen-corert" + ] + }, + "ubuntu": { + "#import": [ + "debian" + ] + }, + "ubuntu-arm": { + "#import": [ + "ubuntu", + "debian-arm" + ] + }, + "ubuntu-arm-corert": { + "#import": [ + "ubuntu-corert", + "ubuntu-arm", + "debian-arm-corert" + ] + }, + "ubuntu-arm64": { + "#import": [ + "ubuntu", + "debian-arm64" + ] + }, + "ubuntu-arm64-corert": { + "#import": [ + "ubuntu-corert", + "ubuntu-arm64", + "debian-arm64-corert" + ] + }, + "ubuntu-corert": { + "#import": [ + "ubuntu", + "debian-corert" + ] + }, + "ubuntu-x64": { + "#import": [ + "ubuntu", + "debian-x64" + ] + }, + "ubuntu-x64-corert": { + "#import": [ + "ubuntu-corert", + "ubuntu-x64", + "debian-x64-corert" + ] + }, + "ubuntu-x86": { + "#import": [ + "ubuntu", + "debian-x86" + ] + }, + "ubuntu-x86-corert": { + "#import": [ + "ubuntu-corert", + "ubuntu-x86", + "debian-x86-corert" + ] + }, + "ubuntu.14.04": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.14.04-arm": { + "#import": [ + "ubuntu.14.04", + "ubuntu-arm" + ] + }, + "ubuntu.14.04-arm-corert": { + "#import": [ + "ubuntu.14.04-corert", + "ubuntu.14.04-arm", + "ubuntu.14.04", + "ubuntu-arm-corert" + ] + }, + "ubuntu.14.04-corert": { + "#import": [ + "ubuntu.14.04", + "ubuntu-corert" + ] + }, + "ubuntu.14.04-x64": { + "#import": [ + "ubuntu.14.04", + "ubuntu-x64" + ] + }, + "ubuntu.14.04-x64-corert": { + "#import": [ + "ubuntu.14.04-corert", + "ubuntu.14.04-x64", + "ubuntu.14.04", + "ubuntu-x64-corert" + ] + }, + "ubuntu.14.04-x86": { + "#import": [ + "ubuntu.14.04", + "ubuntu-x86" + ] + }, + "ubuntu.14.04-x86-corert": { + "#import": [ + "ubuntu.14.04-corert", + "ubuntu.14.04-x86", + "ubuntu.14.04", + "ubuntu-x86-corert" + ] + }, + "ubuntu.14.10": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.14.10-arm": { + "#import": [ + "ubuntu.14.10", + "ubuntu-arm" + ] + }, + "ubuntu.14.10-arm-corert": { + "#import": [ + "ubuntu.14.10-corert", + "ubuntu.14.10-arm", + "ubuntu.14.10", + "ubuntu-arm-corert" + ] + }, + "ubuntu.14.10-corert": { + "#import": [ + "ubuntu.14.10", + "ubuntu-corert" + ] + }, + "ubuntu.14.10-x64": { + "#import": [ + "ubuntu.14.10", + "ubuntu-x64" + ] + }, + "ubuntu.14.10-x64-corert": { + "#import": [ + "ubuntu.14.10-corert", + "ubuntu.14.10-x64", + "ubuntu.14.10", + "ubuntu-x64-corert" + ] + }, + "ubuntu.14.10-x86": { + "#import": [ + "ubuntu.14.10", + "ubuntu-x86" + ] + }, + "ubuntu.14.10-x86-corert": { + "#import": [ + "ubuntu.14.10-corert", + "ubuntu.14.10-x86", + "ubuntu.14.10", + "ubuntu-x86-corert" + ] + }, + "ubuntu.15.04": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.15.04-arm": { + "#import": [ + "ubuntu.15.04", + "ubuntu-arm" + ] + }, + "ubuntu.15.04-arm-corert": { + "#import": [ + "ubuntu.15.04-corert", + "ubuntu.15.04-arm", + "ubuntu.15.04", + "ubuntu-arm-corert" + ] + }, + "ubuntu.15.04-corert": { + "#import": [ + "ubuntu.15.04", + "ubuntu-corert" + ] + }, + "ubuntu.15.04-x64": { + "#import": [ + "ubuntu.15.04", + "ubuntu-x64" + ] + }, + "ubuntu.15.04-x64-corert": { + "#import": [ + "ubuntu.15.04-corert", + "ubuntu.15.04-x64", + "ubuntu.15.04", + "ubuntu-x64-corert" + ] + }, + "ubuntu.15.04-x86": { + "#import": [ + "ubuntu.15.04", + "ubuntu-x86" + ] + }, + "ubuntu.15.04-x86-corert": { + "#import": [ + "ubuntu.15.04-corert", + "ubuntu.15.04-x86", + "ubuntu.15.04", + "ubuntu-x86-corert" + ] + }, + "ubuntu.15.10": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.15.10-arm": { + "#import": [ + "ubuntu.15.10", + "ubuntu-arm" + ] + }, + "ubuntu.15.10-arm-corert": { + "#import": [ + "ubuntu.15.10-corert", + "ubuntu.15.10-arm", + "ubuntu.15.10", + "ubuntu-arm-corert" + ] + }, + "ubuntu.15.10-corert": { + "#import": [ + "ubuntu.15.10", + "ubuntu-corert" + ] + }, + "ubuntu.15.10-x64": { + "#import": [ + "ubuntu.15.10", + "ubuntu-x64" + ] + }, + "ubuntu.15.10-x64-corert": { + "#import": [ + "ubuntu.15.10-corert", + "ubuntu.15.10-x64", + "ubuntu.15.10", + "ubuntu-x64-corert" + ] + }, + "ubuntu.15.10-x86": { + "#import": [ + "ubuntu.15.10", + "ubuntu-x86" + ] + }, + "ubuntu.15.10-x86-corert": { + "#import": [ + "ubuntu.15.10-corert", + "ubuntu.15.10-x86", + "ubuntu.15.10", + "ubuntu-x86-corert" + ] + }, + "ubuntu.16.04": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.16.04-arm": { + "#import": [ + "ubuntu.16.04", + "ubuntu-arm" + ] + }, + "ubuntu.16.04-arm-corert": { + "#import": [ + "ubuntu.16.04-corert", + "ubuntu.16.04-arm", + "ubuntu.16.04", + "ubuntu-arm-corert" + ] + }, + "ubuntu.16.04-arm64": { + "#import": [ + "ubuntu.16.04", + "ubuntu-arm64" + ] + }, + "ubuntu.16.04-arm64-corert": { + "#import": [ + "ubuntu.16.04-corert", + "ubuntu.16.04-arm64", + "ubuntu.16.04", + "ubuntu-arm64-corert" + ] + }, + "ubuntu.16.04-corert": { + "#import": [ + "ubuntu.16.04", + "ubuntu-corert" + ] + }, + "ubuntu.16.04-x64": { + "#import": [ + "ubuntu.16.04", + "ubuntu-x64" + ] + }, + "ubuntu.16.04-x64-corert": { + "#import": [ + "ubuntu.16.04-corert", + "ubuntu.16.04-x64", + "ubuntu.16.04", + "ubuntu-x64-corert" + ] + }, + "ubuntu.16.04-x86": { + "#import": [ + "ubuntu.16.04", + "ubuntu-x86" + ] + }, + "ubuntu.16.04-x86-corert": { + "#import": [ + "ubuntu.16.04-corert", + "ubuntu.16.04-x86", + "ubuntu.16.04", + "ubuntu-x86-corert" + ] + }, + "ubuntu.16.10": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.16.10-arm": { + "#import": [ + "ubuntu.16.10", + "ubuntu-arm" + ] + }, + "ubuntu.16.10-arm-corert": { + "#import": [ + "ubuntu.16.10-corert", + "ubuntu.16.10-arm", + "ubuntu.16.10", + "ubuntu-arm-corert" + ] + }, + "ubuntu.16.10-arm64": { + "#import": [ + "ubuntu.16.10", + "ubuntu-arm64" + ] + }, + "ubuntu.16.10-arm64-corert": { + "#import": [ + "ubuntu.16.10-corert", + "ubuntu.16.10-arm64", + "ubuntu.16.10", + "ubuntu-arm64-corert" + ] + }, + "ubuntu.16.10-corert": { + "#import": [ + "ubuntu.16.10", + "ubuntu-corert" + ] + }, + "ubuntu.16.10-x64": { + "#import": [ + "ubuntu.16.10", + "ubuntu-x64" + ] + }, + "ubuntu.16.10-x64-corert": { + "#import": [ + "ubuntu.16.10-corert", + "ubuntu.16.10-x64", + "ubuntu.16.10", + "ubuntu-x64-corert" + ] + }, + "ubuntu.16.10-x86": { + "#import": [ + "ubuntu.16.10", + "ubuntu-x86" + ] + }, + "ubuntu.16.10-x86-corert": { + "#import": [ + "ubuntu.16.10-corert", + "ubuntu.16.10-x86", + "ubuntu.16.10", + "ubuntu-x86-corert" + ] + }, + "ubuntu.17.04": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.17.04-arm": { + "#import": [ + "ubuntu.17.04", + "ubuntu-arm" + ] + }, + "ubuntu.17.04-arm-corert": { + "#import": [ + "ubuntu.17.04-corert", + "ubuntu.17.04-arm", + "ubuntu.17.04", + "ubuntu-arm-corert" + ] + }, + "ubuntu.17.04-arm64": { + "#import": [ + "ubuntu.17.04", + "ubuntu-arm64" + ] + }, + "ubuntu.17.04-arm64-corert": { + "#import": [ + "ubuntu.17.04-corert", + "ubuntu.17.04-arm64", + "ubuntu.17.04", + "ubuntu-arm64-corert" + ] + }, + "ubuntu.17.04-corert": { + "#import": [ + "ubuntu.17.04", + "ubuntu-corert" + ] + }, + "ubuntu.17.04-x64": { + "#import": [ + "ubuntu.17.04", + "ubuntu-x64" + ] + }, + "ubuntu.17.04-x64-corert": { + "#import": [ + "ubuntu.17.04-corert", + "ubuntu.17.04-x64", + "ubuntu.17.04", + "ubuntu-x64-corert" + ] + }, + "ubuntu.17.04-x86": { + "#import": [ + "ubuntu.17.04", + "ubuntu-x86" + ] + }, + "ubuntu.17.04-x86-corert": { + "#import": [ + "ubuntu.17.04-corert", + "ubuntu.17.04-x86", + "ubuntu.17.04", + "ubuntu-x86-corert" + ] + }, + "ubuntu.17.10": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.17.10-arm": { + "#import": [ + "ubuntu.17.10", + "ubuntu-arm" + ] + }, + "ubuntu.17.10-arm-corert": { + "#import": [ + "ubuntu.17.10-corert", + "ubuntu.17.10-arm", + "ubuntu.17.10", + "ubuntu-arm-corert" + ] + }, + "ubuntu.17.10-arm64": { + "#import": [ + "ubuntu.17.10", + "ubuntu-arm64" + ] + }, + "ubuntu.17.10-arm64-corert": { + "#import": [ + "ubuntu.17.10-corert", + "ubuntu.17.10-arm64", + "ubuntu.17.10", + "ubuntu-arm64-corert" + ] + }, + "ubuntu.17.10-corert": { + "#import": [ + "ubuntu.17.10", + "ubuntu-corert" + ] + }, + "ubuntu.17.10-x64": { + "#import": [ + "ubuntu.17.10", + "ubuntu-x64" + ] + }, + "ubuntu.17.10-x64-corert": { + "#import": [ + "ubuntu.17.10-corert", + "ubuntu.17.10-x64", + "ubuntu.17.10", + "ubuntu-x64-corert" + ] + }, + "ubuntu.17.10-x86": { + "#import": [ + "ubuntu.17.10", + "ubuntu-x86" + ] + }, + "ubuntu.17.10-x86-corert": { + "#import": [ + "ubuntu.17.10-corert", + "ubuntu.17.10-x86", + "ubuntu.17.10", + "ubuntu-x86-corert" + ] + }, + "ubuntu.18.04": { + "#import": [ + "ubuntu" + ] + }, + "ubuntu.18.04-arm": { + "#import": [ + "ubuntu.18.04", + "ubuntu-arm" + ] + }, + "ubuntu.18.04-arm-corert": { + "#import": [ + "ubuntu.18.04-corert", + "ubuntu.18.04-arm", + "ubuntu.18.04", + "ubuntu-arm-corert" + ] + }, + "ubuntu.18.04-arm64": { + "#import": [ + "ubuntu.18.04", + "ubuntu-arm64" + ] + }, + "ubuntu.18.04-arm64-corert": { + "#import": [ + "ubuntu.18.04-corert", + "ubuntu.18.04-arm64", + "ubuntu.18.04", + "ubuntu-arm64-corert" + ] + }, + "ubuntu.18.04-corert": { + "#import": [ + "ubuntu.18.04", + "ubuntu-corert" + ] + }, + "ubuntu.18.04-x64": { + "#import": [ + "ubuntu.18.04", + "ubuntu-x64" + ] + }, + "ubuntu.18.04-x64-corert": { + "#import": [ + "ubuntu.18.04-corert", + "ubuntu.18.04-x64", + "ubuntu.18.04", + "ubuntu-x64-corert" + ] + }, + "ubuntu.18.04-x86": { + "#import": [ + "ubuntu.18.04", + "ubuntu-x86" + ] + }, + "ubuntu.18.04-x86-corert": { + "#import": [ + "ubuntu.18.04-corert", + "ubuntu.18.04-x86", + "ubuntu.18.04", + "ubuntu-x86-corert" + ] + }, + "unix": { + "#import": [ + "any" + ] + }, + "unix-arm": { + "#import": [ + "unix" + ] + }, + "unix-arm-corert": { + "#import": [ + "unix-corert", + "unix-arm" + ] + }, + "unix-arm64": { + "#import": [ + "unix" + ] + }, + "unix-arm64-corert": { + "#import": [ + "unix-corert", + "unix-arm64" + ] + }, + "unix-armel": { + "#import": [ + "unix" + ] + }, + "unix-armel-corert": { + "#import": [ + "unix-corert", + "unix-armel" + ] + }, + "unix-corert": { + "#import": [ + "unix", + "corert" + ] + }, + "unix-x64": { + "#import": [ + "unix" + ] + }, + "unix-x64-corert": { + "#import": [ + "unix-corert", + "unix-x64" + ] + }, + "unix-x86": { + "#import": [ + "unix" + ] + }, + "unix-x86-corert": { + "#import": [ + "unix-corert", + "unix-x86" + ] + }, + "win": { + "#import": [ + "any" + ] + }, + "win-aot": { + "#import": [ + "win", + "aot" + ] + }, + "win-arm": { + "#import": [ + "win" + ] + }, + "win-arm-aot": { + "#import": [ + "win-aot", + "win-arm" + ] + }, + "win-arm-corert": { + "#import": [ + "win-corert", + "win-arm" + ] + }, + "win-arm64": { + "#import": [ + "win" + ] + }, + "win-arm64-aot": { + "#import": [ + "win-aot", + "win-arm64" + ] + }, + "win-arm64-corert": { + "#import": [ + "win-corert", + "win-arm64" + ] + }, + "win-corert": { + "#import": [ + "win", + "corert" + ] + }, + "win-x64": { + "#import": [ + "win" + ] + }, + "win-x64-aot": { + "#import": [ + "win-aot", + "win-x64" + ] + }, + "win-x64-corert": { + "#import": [ + "win-corert", + "win-x64" + ] + }, + "win-x86": { + "#import": [ + "win" + ] + }, + "win-x86-aot": { + "#import": [ + "win-aot", + "win-x86" + ] + }, + "win-x86-corert": { + "#import": [ + "win-corert", + "win-x86" + ] + }, + "win10": { + "#import": [ + "win81" + ] + }, + "win10-aot": { + "#import": [ + "win10", + "win81-aot" + ] + }, + "win10-arm": { + "#import": [ + "win10", + "win81-arm" + ] + }, + "win10-arm-aot": { + "#import": [ + "win10-aot", + "win10-arm", + "win10", + "win81-arm-aot" + ] + }, + "win10-arm-corert": { + "#import": [ + "win10-corert", + "win10-arm", + "win10", + "win81-arm-corert" + ] + }, + "win10-arm64": { + "#import": [ + "win10", + "win81-arm64" + ] + }, + "win10-arm64-aot": { + "#import": [ + "win10-aot", + "win10-arm64", + "win10", + "win81-arm64-aot" + ] + }, + "win10-arm64-corert": { + "#import": [ + "win10-corert", + "win10-arm64", + "win10", + "win81-arm64-corert" + ] + }, + "win10-corert": { + "#import": [ + "win10", + "win81-corert" + ] + }, + "win10-x64": { + "#import": [ + "win10", + "win81-x64" + ] + }, + "win10-x64-aot": { + "#import": [ + "win10-aot", + "win10-x64", + "win10", + "win81-x64-aot" + ] + }, + "win10-x64-corert": { + "#import": [ + "win10-corert", + "win10-x64", + "win10", + "win81-x64-corert" + ] + }, + "win10-x86": { + "#import": [ + "win10", + "win81-x86" + ] + }, + "win10-x86-aot": { + "#import": [ + "win10-aot", + "win10-x86", + "win10", + "win81-x86-aot" + ] + }, + "win10-x86-corert": { + "#import": [ + "win10-corert", + "win10-x86", + "win10", + "win81-x86-corert" + ] + }, + "win7": { + "#import": [ + "win" + ] + }, + "win7-aot": { + "#import": [ + "win7", + "win-aot" + ] + }, + "win7-arm": { + "#import": [ + "win7", + "win-arm" + ] + }, + "win7-arm-aot": { + "#import": [ + "win7-aot", + "win7-arm", + "win7", + "win-arm-aot" + ] + }, + "win7-arm-corert": { + "#import": [ + "win7-corert", + "win7-arm", + "win7", + "win-arm-corert" + ] + }, + "win7-arm64": { + "#import": [ + "win7", + "win-arm64" + ] + }, + "win7-arm64-aot": { + "#import": [ + "win7-aot", + "win7-arm64", + "win7", + "win-arm64-aot" + ] + }, + "win7-arm64-corert": { + "#import": [ + "win7-corert", + "win7-arm64", + "win7", + "win-arm64-corert" + ] + }, + "win7-corert": { + "#import": [ + "win7", + "win-corert" + ] + }, + "win7-x64": { + "#import": [ + "win7", + "win-x64" + ] + }, + "win7-x64-aot": { + "#import": [ + "win7-aot", + "win7-x64", + "win7", + "win-x64-aot" + ] + }, + "win7-x64-corert": { + "#import": [ + "win7-corert", + "win7-x64", + "win7", + "win-x64-corert" + ] + }, + "win7-x86": { + "#import": [ + "win7", + "win-x86" + ] + }, + "win7-x86-aot": { + "#import": [ + "win7-aot", + "win7-x86", + "win7", + "win-x86-aot" + ] + }, + "win7-x86-corert": { + "#import": [ + "win7-corert", + "win7-x86", + "win7", + "win-x86-corert" + ] + }, + "win8": { + "#import": [ + "win7" + ] + }, + "win8-aot": { + "#import": [ + "win8", + "win7-aot" + ] + }, + "win8-arm": { + "#import": [ + "win8", + "win7-arm" + ] + }, + "win8-arm-aot": { + "#import": [ + "win8-aot", + "win8-arm", + "win8", + "win7-arm-aot" + ] + }, + "win8-arm-corert": { + "#import": [ + "win8-corert", + "win8-arm", + "win8", + "win7-arm-corert" + ] + }, + "win8-arm64": { + "#import": [ + "win8", + "win7-arm64" + ] + }, + "win8-arm64-aot": { + "#import": [ + "win8-aot", + "win8-arm64", + "win8", + "win7-arm64-aot" + ] + }, + "win8-arm64-corert": { + "#import": [ + "win8-corert", + "win8-arm64", + "win8", + "win7-arm64-corert" + ] + }, + "win8-corert": { + "#import": [ + "win8", + "win7-corert" + ] + }, + "win8-x64": { + "#import": [ + "win8", + "win7-x64" + ] + }, + "win8-x64-aot": { + "#import": [ + "win8-aot", + "win8-x64", + "win8", + "win7-x64-aot" + ] + }, + "win8-x64-corert": { + "#import": [ + "win8-corert", + "win8-x64", + "win8", + "win7-x64-corert" + ] + }, + "win8-x86": { + "#import": [ + "win8", + "win7-x86" + ] + }, + "win8-x86-aot": { + "#import": [ + "win8-aot", + "win8-x86", + "win8", + "win7-x86-aot" + ] + }, + "win8-x86-corert": { + "#import": [ + "win8-corert", + "win8-x86", + "win8", + "win7-x86-corert" + ] + }, + "win81": { + "#import": [ + "win8" + ] + }, + "win81-aot": { + "#import": [ + "win81", + "win8-aot" + ] + }, + "win81-arm": { + "#import": [ + "win81", + "win8-arm" + ] + }, + "win81-arm-aot": { + "#import": [ + "win81-aot", + "win81-arm", + "win81", + "win8-arm-aot" + ] + }, + "win81-arm-corert": { + "#import": [ + "win81-corert", + "win81-arm", + "win81", + "win8-arm-corert" + ] + }, + "win81-arm64": { + "#import": [ + "win81", + "win8-arm64" + ] + }, + "win81-arm64-aot": { + "#import": [ + "win81-aot", + "win81-arm64", + "win81", + "win8-arm64-aot" + ] + }, + "win81-arm64-corert": { + "#import": [ + "win81-corert", + "win81-arm64", + "win81", + "win8-arm64-corert" + ] + }, + "win81-corert": { + "#import": [ + "win81", + "win8-corert" + ] + }, + "win81-x64": { + "#import": [ + "win81", + "win8-x64" + ] + }, + "win81-x64-aot": { + "#import": [ + "win81-aot", + "win81-x64", + "win81", + "win8-x64-aot" + ] + }, + "win81-x64-corert": { + "#import": [ + "win81-corert", + "win81-x64", + "win81", + "win8-x64-corert" + ] + }, + "win81-x86": { + "#import": [ + "win81", + "win8-x86" + ] + }, + "win81-x86-aot": { + "#import": [ + "win81-aot", + "win81-x86", + "win81", + "win8-x86-aot" + ] + }, + "win81-x86-corert": { + "#import": [ + "win81-corert", + "win81-x86", + "win81", + "win8-x86-corert" + ] + } + } +} \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/useSharedDesignerContext.txt b/packages/Microsoft.NETCore.Platforms.2.1.0/useSharedDesignerContext.txt similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/useSharedDesignerContext.txt rename to packages/Microsoft.NETCore.Platforms.2.1.0/useSharedDesignerContext.txt diff --git a/packages/Microsoft.NETCore.Platforms.2.1.0/version.txt b/packages/Microsoft.NETCore.Platforms.2.1.0/version.txt new file mode 100644 index 0000000000..47004a02b3 --- /dev/null +++ b/packages/Microsoft.NETCore.Platforms.2.1.0/version.txt @@ -0,0 +1 @@ +30ab651fcb4354552bd4891619a0bdd81e0ebdbf diff --git a/packages/SimpleInjector.4.0.12/SimpleInjector.4.0.12.nupkg b/packages/SimpleInjector.4.0.12/SimpleInjector.4.0.12.nupkg deleted file mode 100644 index 2975944f7b..0000000000 Binary files a/packages/SimpleInjector.4.0.12/SimpleInjector.4.0.12.nupkg and /dev/null differ diff --git a/packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.dll b/packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.dll deleted file mode 100644 index 5bae84d603..0000000000 Binary files a/packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.dll and /dev/null differ diff --git a/packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.dll b/packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.dll deleted file mode 100644 index 3b00d8c638..0000000000 Binary files a/packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.dll and /dev/null differ diff --git a/packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.dll b/packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.dll deleted file mode 100644 index e9da78b52f..0000000000 Binary files a/packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.dll and /dev/null differ diff --git a/packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.dll b/packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.dll deleted file mode 100644 index cd3bf6529d..0000000000 Binary files a/packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.dll and /dev/null differ diff --git a/packages/SimpleInjector.4.3.0/SimpleInjector.4.3.0.nupkg b/packages/SimpleInjector.4.3.0/SimpleInjector.4.3.0.nupkg new file mode 100644 index 0000000000..ab66e7f06b Binary files /dev/null and b/packages/SimpleInjector.4.3.0/SimpleInjector.4.3.0.nupkg differ diff --git a/packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.dll b/packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.dll new file mode 100644 index 0000000000..5436d367b7 Binary files /dev/null and b/packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.dll differ diff --git a/packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.xml b/packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.xml similarity index 82% rename from packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.xml rename to packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.xml index d22340923d..809362ed3f 100644 --- a/packages/SimpleInjector.4.0.12/lib/net40/SimpleInjector.xml +++ b/packages/SimpleInjector.4.3.0/lib/net40/SimpleInjector.xml @@ -53,637 +53,1234 @@ The class name is null or hresult is zero (0). - + - The container. Create an instance of this type for registration of dependencies. + Extension methods for enable advanced scenarios. - - - Thread-safety: - Resolving instances can be done safely from multiple threads concurrently, but registration needs to - be done from one single thread. - - - It is therefore safe to call , , - GetService, and - and anything related to resolving instances from multiple thread - concurrently. It is however unsafe to call - RegisterXXX, - , , , - or anything related to registering from multiple threads concurrently. - - - Common Container methods specific for the full .NET version of Simple Injector. - Methods for batch registration. - Methods for registration of collections. - Methods for conditional registrations. - - These conditional registration methods lack a Func{PredicateContext, TService} predicate - method. This is deliberate, because would force the factory to be registered as transient, forcing - the whole parent structure to become transient as well. Besides this, it would blind the diagnostic - system, because it will stop at the delegate, instead of being able to analyze the object graph as - a whole. - - Methods for registration. - Methods for registration of decorators. - Methods for resolving instances. - Methods for verifying the container. - - - Initializes a new instance of the class. - - - Gets the container options. - The instance for this container. - + - Gets a value indicating whether the container is currently being verified on the current thread. + Determines whether the specified container is locked making any new registrations. The container + is automatically locked when GetInstance is called for the + first time. - True in case the container is currently being verified on the current thread; otherwise - false. + The container. + + true if the specified container is locked; otherwise, false. + + Thrown when is null. - - - Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is - returned from the registered container.Options.LifestyleSelectionBehavior. - + + Determines whether the specified container is currently verifying its configuration. + The container. + true if the specified container is verifying; otherwise, false. + Thrown when is null. - + - Returns an array with the current registrations. This list contains all explicitly registered - types, and all implicitly registered instances. Implicit registrations are all concrete - unregistered types that have been requested, all types that have been resolved using - unregistered type resolution (using the event), and - requested unregistered collections. Note that the result of this method may change over time, - because of these implicit registrations. + Retrieves an item from the container stored by the given or null when no + item is stored by that key. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . - An array of instances. + The container. + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + - Returns an array with the current registrations for root objects. Root objects are registrations - that are in the root of the object graph, meaning that no other registration is depending on it. + Stores an item by the given in the container. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - This list contains the root objects of all explicitly registered types, and all implicitly - registered instances. Implicit registrations are all concrete unregistered types that have been - requested, all types that have been resolved using unregistered type resolution (using the - event), and requested unregistered collections. Note that - the result of this method may change over time, because of these implicit registrations. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. - An array of instances. - Thrown when this method is called before - has been successfully called. - - - Determines whether the specified System.Object is equal to the current System.Object. - - The System.Object to compare with the current System.Object. - - True if the specified System.Object is equal to the current System.Object; otherwise, false. - - - - Returns the hash code of the current instance. - The hash code of the current instance. + The container. + The key of the item to insert or override. + The actual item. May be null. + Thrown when either or + is a null reference (Nothing in VB). - + - Returns a that represents the . + Adds an item by the given in the container by using the specified function, + if the key does not already exist. This operation is atomic. - - A that represents the . - - - - Gets the of the current instance. - The instance that represents the exact runtime - type of the current instance. - - - Releases all instances that are cached by the object. - - - Prevents any new registrations to be made to the container. - - - Releases all instances that are cached by the object. - True for a normal dispose operation; false to finalize the handle. + The Type of the item to create. + The container. + The key of the item to insert or override. + The function used to generate a value for the given key. The supplied + value of will be supplied to the function when called. + The stored item or the item from the . + Thrown when either , + or is a null reference (Nothing in VB). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with container's default lifestyle (which is transient by default). - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with the supplied . - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + + Deprecation extensions. + + - Registers all supplied based on the closed-generic version - of the given with the transient lifestyle. + This interface method has been removed. Please call GetInstanceProducerFor instead. - The definition of the open generic type. - A list types to be registered. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + The consumer. + Throws an exception. - + - Registers all supplied based on the closed-generic version - of the given with the given . + This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. - The definition of the open generic type. - A list types to be registered. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + Type of the abstraction that is requested. + The property to check. + True when the property should be injected. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. + Defines the container's behavior for finding a suitable constructor for the creation of a type. + Set the ConstructorResolutionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Gets the given 's constructor that can be used by the + container to create that instance. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). + Type of the implementation to find a suitable constructor for. + + The . This method never returns null. + + Thrown when no suitable constructor could be found. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Defines the container's behavior for building an expression tree for an dependency to inject, based on + the information of the consuming type the dependency is injected into. + Set the ConstructorInjectionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + + Verifies the specified . + Contextual information about the consumer where the built dependency is + injected into. + + Thrown when the type of the target supplied with + the supplied cannot be used for auto wiring. + Thrown when the supplied argument is a null reference. + + - Returns all concrete non-generic types that are located in the supplied - and implement or inherit from the supplied . - can be an open-generic type. + Gets the for the + Target of the supplied . - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). + Contextual information about the consumer where the built dependency is + injected into. + The indication whether the method should return null or throw + an exception when the type is not registered. + An that describes the intend of creating that + Target. This method never returns null. + Thrown when the argument is a null reference. - + - Returns all concrete types that are located in the supplied - and implement or inherit from the supplied and match the specified - . can be an open-generic type. + Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle + is explicitly supplied. + Set the LifestyleSelectionBehavior + property of the container's property to change the default behavior + of the container. By default, when no lifestyle is explicitly supplied, the + Transient lifestyle is used. - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - The options. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). - + + Selects the lifestyle based on the supplied type information. + Type of the implementation to that is registered. + The suited for the given type. + Thrown when either one of the arguments is a null reference. + + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterResolveInterceptor + method that takes this delegate. This type contains contextual information about a resolved type and it + allows the user to examine the given instance to decide whether the + should be applied or not. - The interface or base type that can be used to retrieve instances. - The container-uncontrolled collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - + - Registers a collection of singleton elements of type . + Gets the that is responsible for the initialization of the created + instance. - The interface or base type that can be used to retrieve instances. - The collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - Thrown when one of the elements of - is a null reference. + The or null (Nothing in VB) when the instance producer is + unknown. - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + /// The . - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterInitializer + overload that takes this delegate. This type contains contextual information about the creation and it + allows the user to examine the given instance to decide whether the instance should be initialized or + not. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets a null reference. This property has been deprecated. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + The null (Nothing in VB). - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. This can be - an a non-generic type, closed generic type or generic type definition. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - + /// The . - + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + Contains data that can be used to initialize a created instance. This data includes the actual + created and the information about the created instance. - The base type or interface for elements in the collection. - The collection of items to register. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - Thrown when represents an - open generic type. - + + Initializes a new instance of the struct. + The that contains contextual information + about the created instance. + The created instance. + + + Gets the with contextual information about the + created instance. + The . + + + Gets the created instance. + The created instance. + + + Returns the hash code for this instance. + A 32-bit signed integer that is the hash code for this instance. + + + Indicates whether this instance and a specified object are equal. + Another object to compare to. + True if the current object is equal to the other parameter; otherwise, false. + + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the current object is equal to another object of the same type. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + An object to compare with this object. + True if the current object is equal to the other parameter; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are equal. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The lifestyle that specifies how the returned instance will be cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are equal; otherwise, false. - + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are + not equal. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are not equal; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when and - are not a generic type or when - is a partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - - + + Initializes a new instance of the struct. + The scope factory. + The container. + + + Gets the lazily initialized Scope of the current LazyScope instance. + The current Scope or null. + + - Conditionally registers that an instance of the type returned from - will be returned every time a - is requested and where the supplied - returns true. The instance is cached according to the supplied - . Both the and - will only be evaluated a finite number of times; - they unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - A factory that allows building Type objects that define the - implementation type to inject, based on the given contextual information. The delegate is allowed - to return (partially) open-generic types. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the registration can be applied for - the requested service type. This predicate can be used to build a fallback mechanism where - multiple registrations for the same service type are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is a - partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - + Implementation type. - + - Conditionally registers that will be used every time a - is requested and where the supplied - returns true. The predicate will only be evaluated a finite number of times; the predicate is - unsuited for making decisions based on runtime conditions. + Initializes a new instance of the + struct. + The registration. + + + Gets the lazily initialized instance for the of the current LazyScopedRegistration. + The scope that is used to retrieve the instance. + The cached instance. + + + + Defines the container's behavior for selecting properties to inject during the creation of a type. + Set the PropertySelectionBehavior + property of the container's property to change the default behavior + of the container. By default, no properties will be injected by the container. - The base type or interface to register. This can be an open-generic type. - The instance to register. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is open generic or - is not assignable to . - - Thrown when this container instance is locked and can not be altered. - - - - Occurs when an instance of a type is requested that has not been registered explicitly, allowing - resolution of unregistered types before the container tries to create the type. - - - - The event is called by the container every time an - unregistered type is requested for the first time, allowing a developer to do unregistered type - resolution. By calling the + + + Determines whether a property should be injected by the container upon creation of its type. + + + The type being created for which the property should be injected. Note that this might a + different type than the type on which the property is declared (which might be a base class). + The property to check. + True when the property should be injected. + + + + A known relationship defines a relationship between two types. The Diagnostics Debug View uses this + information to spot possible misconfigurations. + + + + Initializes a new instance of the class. + The implementation type of the parent type. + The lifestyle of the parent type. + The type that the parent depends on (it is injected into the parent). + + + Gets the implementation type of the parent type of the relationship. + The implementation type of the parent type of the relationship. + + + Gets the lifestyle of the parent type of the relationship. + The lifestyle of the parent type of the relationship. + + + Gets the type that the parent depends on (it is injected into the parent). + The type that the parent depends on. + + + Serves as a hash function for a particular type. + A hash code for the current . + + + + Determines whether the specified is equal to the current + . + + The object to compare with the current object. + True if the specified is equal to the current + ; otherwise, false. + + + + The container. Create an instance of this type for registration of dependencies. + + + + Thread-safety: + Resolving instances can be done safely from multiple threads concurrently, but registration needs to + be done from one single thread. + + + It is therefore safe to call , , + GetService, and + and anything related to resolving instances from multiple thread + concurrently. It is however unsafe to call + RegisterXXX, + , , , + or anything related to registering from multiple threads concurrently. + + + Common Container methods specific for the full .NET version of Simple Injector. + Methods for batch registration. + Methods for registration of collections. + Methods for conditional registrations. + + These conditional registration methods lack a Func{PredicateContext, TService} predicate + method. This is deliberate, because would force the factory to be registered as transient, forcing + the whole parent structure to become transient as well. Besides this, it would blind the diagnostic + system, because it will stop at the delegate, instead of being able to analyze the object graph as + a whole. + + Methods for registration. + Methods for registration of decorators. + Methods for resolving instances. + Methods for verifying the container. + + + Initializes a new instance of the class. + + + Gets the container options. + The instance for this container. + + + + Gets a value indicating whether the container is currently being verified on the current thread. + + True in case the container is currently being verified on the current thread; otherwise + false. + + + + Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is + returned from the registered container.Options.LifestyleSelectionBehavior. + + + + + Returns an array with the current registrations. This list contains all explicitly registered + types, and all implicitly registered instances. Implicit registrations are all concrete + unregistered types that have been requested, all types that have been resolved using + unregistered type resolution (using the event), and + requested unregistered collections. Note that the result of this method may change over time, + because of these implicit registrations. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + + + + Returns an array with the current registrations for root objects. Root objects are registrations + that are in the root of the object graph, meaning that no other registration is depending on it. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + This list contains the root objects of all explicitly registered types, and all implicitly + registered instances. Implicit registrations are all concrete unregistered types that have been + requested, all types that have been resolved using unregistered type resolution (using the + event), and requested unregistered collections. Note that + the result of this method may change over time, because of these implicit registrations. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + Thrown when this method is called before + has been successfully called. + + + Determines whether the specified System.Object is equal to the current System.Object. + + The System.Object to compare with the current System.Object. + + True if the specified System.Object is equal to the current System.Object; otherwise, false. + + + + Returns the hash code of the current instance. + The hash code of the current instance. + + + + Returns a that represents the . + + + A that represents the . + + + + Gets the of the current instance. + The instance that represents the exact runtime + type of the current instance. + + + Releases all instances that are cached by the object. + + + Prevents any new registrations to be made to the container. + + + Releases all instances that are cached by the object. + True for a normal dispose operation; false to finalize the handle. + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + An assembly that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the transient lifestyle. + + The definition of the open generic type. + A list types to be registered. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the given . + + The definition of the open generic type. + A list types to be registered. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + assemblies = new[] { typeof(ILogger).Assembly }; + var types = container.GetTypesToRegister(assemblies) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ( + typeof(ILogger).Assembly, + typeof(FileLogger).Assembly) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Container.Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete types that are located in the supplied + and implement or inherit from the supplied and match the specified + . can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + The options. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + + + + Registers a collection of singleton elements of type . + + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The lifestyle that specifies how the returned instance will be cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when and + are not a generic type or when + is a partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of the type returned from + will be returned every time a + is requested and where the supplied + returns true. The instance is cached according to the supplied + . Both the and + will only be evaluated a finite number of times; + they unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + A factory that allows building Type objects that define the + implementation type to inject, based on the given contextual information. The delegate is allowed + to return (partially) open-generic types. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the registration can be applied for + the requested service type. This predicate can be used to build a fallback mechanism where + multiple registrations for the same service type are made. + Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is a + partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + is requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is open generic or + is not assignable to . + + Thrown when this container instance is locked and can not be altered. + + + + + Occurs when an instance of a type is requested that has not been registered explicitly, allowing + resolution of unregistered types before the container tries to create the type. + + + + The event is called by the container every time an + unregistered type is requested for the first time, allowing a developer to do unregistered type + resolution. By calling the Register method on the , a , or delegate can be registered allowing the container to retrieve @@ -911,7 +1508,7 @@ will result in an , while registrations that take a delegate (such as Register<TService>(Func<TService>)) will result in an . Singletons that are passed in using their - value (RegisterSingleton<TService>(TService)) + value (RegisterInstance<TService>(TService)) will result in an . Note that other ExpressionBuilding registrations might have changed the property and might have supplied an of a different type. The order in @@ -978,6 +1575,14 @@ + + Gets the object that allows access to methods related to registration and creation of collections. + The instance for this container. + + + This property is obsolete. Please use instead. + The instance for this container. + Registers that a new instance of will be returned every time it @@ -1183,23 +1788,42 @@ is requested. The delegate is expected to produce new instances on each call. The instances are cached according to the supplied . - The interface or base type that can be used to retrieve instances. - The delegate that allows building or creating new instances. - The lifestyle that specifies how the returned instance will be cached. + The interface or base type that can be used to retrieve instances. + The delegate that allows building or creating new instances. + The lifestyle that specifies how the returned instance will be cached. + + Thrown when this container instance is locked and can not be altered, or when the + has already been registered. + + Thrown when one of the supplied arguments is a null reference (Nothing in VB). + + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use the overload that accepts a delegate. + + The interface or base type that can be used to retrieve the instance. + The instance to register. Thrown when this container instance is locked and can not be altered, or when the - has already been registered. + has already been registered. - Thrown when one of the supplied arguments is a null reference (Nothing in VB). + Thrown when is a null reference. + - + Registers a single instance that will be returned when an instance of type is requested. This must be thread-safe when working in a multi-threaded environment. NOTE: Do note that instances supplied by this method NEVER get disposed by the container, since the instance is assumed to outlive this container instance. If disposing is - required, use the overload that accepts a delegate. + required, use + RegisterSingleton<TService>(Func<TService>). The interface or base type that can be used to retrieve the instance. The instance to register. @@ -1227,6 +1851,27 @@ the has already been registered. + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton(Type, Func<object>). + + The base type or interface to register. + The instance to register. + Thrown when either or + are null references (Nothing in VB). + Thrown when is + no sub type from . + + Thrown when this container instance is locked and can not be altered, or when an + the has already been registered. + + Registers a single concrete instance that will be constructed using constructor injection and will @@ -1407,7 +2052,7 @@ (using constructor injection). Types that are newed up manually by supplying a delegate to the container (using the method) or registered as single instance - (using ) will not trigger initialization. + (using ) will not trigger initialization. When initialization of these instances is needed, this must be done manually, as can be seen in the following example: option is supplied. Thrown when has an invalid value. - - - Delegate that allows intercepting calls to and - . - - Contextual information about the to be created object. - A delegate that produces the actual instance according to its - lifestyle settings. - The instance that is returned from or an intercepted instance. - - - Configuration options for the Container. - - The following example shows the typical usage of the ContainerOptions class. - (); - - // Use of ContainerOptions class here. - container.Options.AllowOverridingRegistrations = true; - - // Replaces the previous registration of ITimeProvider - container.Register(); - ]]> - - - - - Gets the container to which this ContainerOptions instance belongs to. - - The current Container. - - + - Gets or sets a value indicating whether the container allows overriding registrations. The default - is false. + Contains methods for registering and creating collections in the . - The value indicating whether the container allows overriding registrations. - + - Gets or sets a value indicating whether the container should suppress checking for lifestyle - mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default - is false. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether the container should suppress checking for lifestyle - mismatches. - - - Gets or sets a value indicating whether. - This method is deprecated. Changing its value will have no effect. - The value indicating whether the container will return an empty collection. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets a value indicating whether all the containers in the current AppDomain should throw - exceptions that contain fully qualified type name. The default is false which means - the type's namespace is omitted. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether exception message should emit full type names. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets the constructor resolution behavior. By default, the container only supports types - that have a single public constructor. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The constructor resolution behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - Gets or sets the dependency injection behavior. - The constructor injection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the property selection behavior. The container's default behavior is to do no - property injection. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The property selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the lifestyle selection behavior. The container's default behavior is to make - registrations using the lifestyle. - The lifestyle selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the default lifestyle that the container will use when a registration is - made when no lifestyle is supplied. - The default lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the default scoped lifestyle that the container should use when a registration is - made using Lifestyle.Scoped. - The default scoped lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - - Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. - By default, this value is true for the first few containers that are created in an AppDomain - and false for all other containers. You can set this value explicitly to false - to prevent the use of dynamic assemblies or you can set this value explicitly to true to - force more container instances to use dynamic assemblies. Note that creating an infinite number - of Container instances (for instance one per web request) - with this property set to true will result in a memory leak; dynamic assemblies take up - memory and will only be unloaded when the AppDomain is unloaded. - - A boolean indicating whether the container should use a dynamic assembly for compilation. - - - + - Registers an delegate that allows intercepting calls to - GetInstance and - . + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - If multiple registered instances must be applied, they will be - applied/wrapped in the order of registration, i.e. the first registered interceptor will call the - original instance producer delegate, the second interceptor will call the first interceptor, etc. - The last registered interceptor will become the outermost method in the chain and will be called - first. - - The delegate to register. - The predicate that will be used to check whether the given delegate must - be applied to a registration or not. The given predicate will be called once for each registration - in the container. - - Thrown when either the or are - null references. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - The following example shows the usage of the method: - - { - object instance = producer.Invoke(); - Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); - return instance; - }, - context => context.Producer.ServiceType.Name.EndsWith("Controller")); - - container.Register(); - container.Register(); - - // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. - container.GetInstance(); - ]]> - - - - Returns a string that represents the current object. - A string that represents the current object. - - - - An instance of this type can be injected into constructors of decorator classes that are registered - using RegisterDecorator. This type contains - contextual information about the applied decoration and it allows users to examine the given instance - to make runtime decisions. - - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The implementation type. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the list of the types of decorators that have already been applied to this instance. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The applied decorators. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The current expression that is about to be decorated. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterDecorator - overload that takes this delegate. This type contains information about the decoration that is about - to be applied and it allows users to examine the given instance to see whether the decorator should - be applied or not. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - Please see the - RegisterDecorator - method for more information. - + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The implementation type. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the list of the types of decorators that have already been applied to this instance. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The applied decorators. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Appends a new to existing registrations made using one of the + Container.Collections.Register + overloads. - The current expression that is about to be decorated. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Thrown by the container in case of a diagnostic error. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads. + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + Thrown when the is ambiguous. + - + - Initializes a new instance of the class. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads with the given . + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + The lifestyle that specifies how the returned instance will be cached. + Thrown when the is ambiguous. + + Thrown when is a null reference. + - + - Initializes a new instance of the class with a specified error - message. + Appends a new registration to existing registrations made for a collection of + elements using one of the + Container.Collections.Register + overloads. - The message that describes the error. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Initializes a new instance of the class with a specified error - message. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. - The list of errors. + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. - + - Initializes a new instance of the class with a specified error - message and a reference to the inner exception that is the cause of this exception. + Registers a collection of singleton elements of type . - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual - Basic) if no inner exception is specified. - + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. - + - Initializes a new instance of the class with serialized data. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - The that holds the serialized object data about the exception - being thrown. - - - The that contains contextual information about the source or - destination. - - - The parameter is null. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). - - The class name is null or hresult is zero (0). + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - - Gets the list of instances. - A list of instances. + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Provides data for and interaction with the - ExpressionBuilding event of - the . An observer can change the - property to change the component that is - currently being built. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - + - Gets the type that is known to be returned by the - Expression (most often the implementation - type used in the Register call). This type will be a derivative of - RegisteredServiceType (or - or RegisteredServiceType itself). If the Expression is changed, the new expression - must also return an instance of type KnownImplementationType or a sub type. - This information must be described in the new Expression. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - A . - - - Gets the lifestyle for the component that is currently being built. - The . - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The collection of instances. + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - + - Provides data for and interaction with the - ExpressionBuilt event of - the . An observer can change the - property to change the component that is currently - being built. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. - - Initializes a new instance of the class. - Type of the registered service. - The registered expression. - - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. - - - Gets or sets the current lifestyle of the registration. - The original lifestyle of the registration. - - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The collection of instances. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Helper methods for the container. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Contains contextual information about the direct consumer for which the given dependency is injected - into. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - - Initializes a new instance of the class. - The constructor parameter for the created component. - - - Initializes a new instance of the class. - The implementation type of the consumer of the component that should be created. - The property for the created component. - - - Gets the service type of the consumer of the component that should be created. - The closed generic service type. - - - Gets the implementation type of the consumer of the component that should be created. - The implementation type. - - + - Gets the information about the consumer's target in which the dependency is injected. The target - can be either a property or a constructor parameter. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. - The for this context. - - - Returns a string that represents the . - A string. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Discovers the attributes of the code element (a property or parameter) where a dependency will be - injected into, and provides access to its meta data. + Delegate that allows intercepting calls to and + . + Contextual information about the to be created object. + A delegate that produces the actual instance according to its + lifestyle settings. + The instance that is returned from or an intercepted instance. - - Gets the constructor argument of the consumer of the component where the dependency will be - injected into. The property can return null. - The or null when the dependency is injected into a property. - - - Gets the property of the consumer of the component where the dependency will be injected into. - The property can return null. - The or null when the dependency is injected into a constructor - argument instead. - - - Gets the name of the target. - A string containing the name of the target. - - - Gets the type of the target. - A containing the type of the target. - - - Gets the member of the target. This is either the constructor of the parameter, or in - case the target is a property, the property itself will be returned. - A containing the type of the target. + + Configuration options for the Container. + + The following example shows the typical usage of the ContainerOptions class. + (); + + // Use of ContainerOptions class here. + container.Options.AllowOverridingRegistrations = true; + + // Replaces the previous registration of ITimeProvider + container.Register(); + ]]> + - + - Returns an array of all of the custom attributes defined on either the or - the , excluding named attributes, or an empty array if there are no custom - attributes. + Gets the container to which this ContainerOptions instance belongs to. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - There is more than one attribute of type attributeType - defined on this member. + The current Container. - + - Returns an array of custom attributes defined on either the or - the , identified by type, or an empty array if there are no custom - attributes of that type. + Gets or sets a value indicating whether the container allows overriding registrations. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - attributeType is null. + The value indicating whether the container allows overriding registrations. - + - Indicates whether one or more instance of attributeType is defined on this either the - or the . + Gets or sets a value indicating whether the container should suppress checking for lifestyle + mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - true if the attributeType is defined on this member; false otherwise. + The value indicating whether the container should suppress checking for lifestyle + mismatches. - + + Gets or sets a value indicating whether. + This method is deprecated. Changing its value will have no effect. + The value indicating whether the container will return an empty collection. + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets a value indicating whether all the containers in the current AppDomain should throw + exceptions that contain fully qualified type name. The default is false which means + the type's namespace is omitted. - The parameter to inspect. - A custom attribute that matches T, or null if no such attribute is found. + The value indicating whether exception message should emit full type names. - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. + Gets or sets the constructor resolution behavior. By default, the container only supports types + that have a single public constructor. - The parameter to inspect.The parameter to inspect. - True to inspect the ancestors of element; otherwise, false. - A custom attribute that matches T, or null if no such attribute is found. + The constructor resolution behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + + Gets or sets the dependency injection behavior. + The constructor injection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets the property selection behavior. The container's default behavior is to do no + property injection. - The type of attribute to search for. - A custom attribute that matches attributeType, or null if no such attribute is found. + The property selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. - - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A custom attribute matching attributeType, or null if no such attribute is found. + Gets or sets the lifestyle selection behavior. The container's default behavior is to make + registrations using the lifestyle. + The lifestyle selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - - The type of attribute to search for. - A collection of the custom attributes that are applied to element and that match T, or - an empty collection if no such attributes exist. + Gets or sets the default lifestyle that the container will use when a registration is + made when no lifestyle is supplied. + The default lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified - parameter, and optionally inspects the ancestors of that parameter. + Gets or sets the default scoped lifestyle that the container should use when a registration is + made using Lifestyle.Scoped. + The default scoped lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + + + Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. + By default, this value is true for the first few containers that are created in an AppDomain + and false for all other containers. You can set this value explicitly to false + to prevent the use of dynamic assemblies or you can set this value explicitly to true to + force more container instances to use dynamic assemblies. Note that creating an infinite number + of Container instances (for instance one per web request) + with this property set to true will result in a memory leak; dynamic assemblies take up + memory and will only be unloaded when the AppDomain is unloaded. - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A collection of the custom attributes that are applied to element and that match T, or an - empty collection if no such attributes exist. + A boolean indicating whether the container should use a dynamic assembly for compilation. + - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - GetCurrentRegistrations() or - GetRegistration(Type, bool). + Registers an delegate that allows intercepting calls to + GetInstance and + . - The Register method overloads create InstanceProducer instances internally, but - InstanceProducers can be created manually to implement special scenarios. An - InstanceProducer wraps instance. The Registration builds an - that describes the intend to create the instance according to a certain - lifestyle. The InstanceProducer on the other hand transforms this Expression to a - delegate and allows the actual instance to be created. A Registration itself can't create any - instance. The InsanceProducer allows intercepting created instances by hooking onto the - Container.ExpressionBuilt event. The - RegisterDecorator methods for - instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance - with a decorator. + If multiple registered instances must be applied, they will be + applied/wrapped in the order of registration, i.e. the first registered interceptor will call the + original instance producer delegate, the second interceptor will call the first interceptor, etc. + The last registered interceptor will become the outermost method in the chain and will be called + first. + The delegate to register. + The predicate that will be used to check whether the given delegate must + be applied to a registration or not. The given predicate will be called once for each registration + in the container. + + Thrown when either the or are + null references. + + + Thrown when this container instance is locked and can not be altered. + - The following example shows the creation of two different InstanceProducer instances that wrap - the same Registration instance. Since the Registration is created using the - Singleton lifestyle, both producers will return - the same instance. The InstanceProducer for the Interface1 however, will wrap that - instance in a (transient) Interface1Decorator. + The following example shows the usage of the method: (container); - - var producer1 = new InstanceProducer(typeof(Interface1), registration); - var producer2 = new InstanceProducer(typeof(Interface2), registration); - - container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); - - var instance1 = (Interface1)producer1.GetInstance(); - var instance2 = (Interface2)producer2.GetInstance(); - - Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); - Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + container.Options.RegisterResolveInterceptor((context, producer) => + { + object instance = producer.Invoke(); + Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); + return instance; + }, + context => context.Producer.ServiceType.Name.EndsWith("Controller")); + + container.Register(); + container.Register(); - Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. + container.GetInstance(); ]]> - - Initializes a new instance of the class. - The service type for which this instance is created. - The . - - - - Gets the for this registration. The returned lifestyle can differ from the - lifestyle that is used during the registration. This can happen for instance when the registration - is changed by an ExpressionBuilt - registration or gets decorated. - - The for this registration. - - - Gets the service type for which this producer produces instances. - A instance. - - - Gets the instance for this instance. - The . - - - - Creates a new based on the given - and where the will be used as-is; - no interception (using ExpressionBuilt) such as - decorators will be applied. - - The service type for which this instance is created. - The expression that describes the instance to be produced. - The instance for this registration. - A new that describes the expression. - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + + Returns a string that represents the current object. + A string that represents the current object. - + - Builds an expression that expresses the intent to get an instance by the current producer. A call - to this method locks the container. No new registrations can't be made after a call to this method. + An instance of this type can be injected into constructors of decorator classes that are registered + using RegisterDecorator. This type contains + contextual information about the applied decoration and it allows users to examine the given instance + to make runtime decisions. - An Expression. - + - Gets the collection of relationships for this instance that the container knows about. - This includes relationships between the registered type and its dependencies and relationships - between applied decorators and their dependencies. Note that types that are not newed up by the - container and properties that are injected inside a custom delegate that is registered using the - RegisterInitializer - method are unknown to the container and are not returned from this method. - Also note that this method will return an empty collection when called before the - registered type is requested from the container (or before - Verify is called). + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - An array of instances. + The closed generic service type. - + - Builds a string representation of the object graph with the current instance as root of the - graph. + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - A string representation of the object graph. - Thrown when this method is called before - or have been called. These calls can be - done directly and explicitly by the user on this instance, indirectly by calling - or on an instance that depends on this - instance, or by calling Verify on the container. - + The implementation type. - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - or . + Gets the list of the types of decorators that have already been applied to this instance. - The service type. - - - Initializes a new instance of the class. - The . - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + The applied decorators. - + - Factory for the creation of a delegate that applies caching to the supplied - . + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. - A factory for creating new instances. - A factory that returns cached instances. + The current expression that is about to be decorated. - + - Instances returned from the container can be cached. The contains several - overloads of the Register method that take a Lifestyle instance as argument to define - how returned instances should be cached. The core library contains two lifestyles out of the box. By - supplying Lifestyle.Transient, the registered instance is not - cached; a new instance is returned every time it is requested or injected. By supplying - Lifestyle.Singleton instances can be cached indefinitely; only - a single instance of the registered component will be returned by that container instance. Other - lifestyles are defined in integration and extension packages. The - CreateCustom method allows defining a custom lifestyle and - the CreateHybrid method - allows creating a lifestyle that mixes multiple other lifestyles. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterDecorator + overload that takes this delegate. This type contains information about the decoration that is about + to be applied and it allows users to examine the given instance to see whether the decorator should + be applied or not. - This type is abstract and can be overridden to implement a custom lifestyle. + Please see the + RegisterDecorator + method for more information. - + - The lifestyle instance that doesn't cache instances. A new instance of the specified - component is created every time the registered service is requested or injected. + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - - The following example registers the SomeServiceImpl implementation for the - ISomeService service type using the Transient lifestyle: - (Lifestyle.Transient); - ]]> - Note that Transient is the default lifestyle, the previous registration can be reduced to - the following: - (); - ]]> - + The closed generic service type. - + - - The lifestyle that caches components according to the lifetime of the container's configured - scoped lifestyle. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the active scope gets disposed. - + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Scoped lifestyle: - (Lifestyle.Scoped); - ]]> - + The implementation type. - + - - The lifestyle that caches components during the lifetime of the instance - and guarantees that only a single instance of that component is created for that instance. Since - general use is to create a single Container instance for the lifetime of the application / - AppDomain, this would mean that only a single instance of that component would exist during the - lifetime of the application. In a multi-threaded applications, implementations registered using - this lifestyle must be thread-safe. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the container gets disposed. - + Gets the list of the types of decorators that have already been applied to this instance. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Singleton lifestyle: - (Lifestyle.Singleton); - ]]> - + The applied decorators. - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. + + + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. + + The current expression that is about to be decorated. - - Gets the user friendly name of this lifestyle. - The user friendly name of this lifestyle. + + + Hooks into the building process and adds a decorator if needed. + - + - Gets the length of the lifestyle. Implementers must implement this property. The diagnostic - services use this value to compare lifestyles with each other to determine lifestyle - misconfigurations. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diaal. - The representing the length of this lifestyle. - + + Gets the lifestyles that causes the registrations to be conflicting. + instances. + + + Gets the implementation type that the affected registrations map to. + A . + + + Gets the registration that caused this warning. + /// An . + + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Gets the list of registrations that are in conflict with the . - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - + A list of instances. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Entry point for doing diagnostic analysis on instances. - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - + The following example shows the usage of the Analyzer class: - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Analyzes the supplied instance. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The lifestyle to use when - returns true. - The lifestyle to use when - returns false. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - lifestyle.GetCurrentScope(container) != null, - lifestyle, - Lifestyle.Transient); - - var mixedScopeLifestyle = Lifestyle.CreateHybrid( - () => HttpContext.Current != null, - new WebRequestLifestyle(), - mixedLifetimeTransientLifestyle); - ]]> - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and - Transient. - - + The container instance to analyze. + A collection of sub types that describe the diagnostic + warnings and messages. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Diagnostic result for a warning about a concrete type that was not registered explicitly and was not + resolved using unregistered type resolution, but was created by the container using the transient + lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The scoped lifestyle to use when - returns true. - The scoped lifestyle to use when - returns false. - A new scoped hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - - + + Gets a collection of instances that describe all + container-registered dependencies for the given component. + List of objects. + + - Creates a custom lifestyle using the supplied delegate. + A hierarchical group of . - - The supplied will be called just once per registered - service. The supplied will be called by the framework - when the type is resolved for the first time, and the framework will supply the factory with a - Func<object> for creating new (transient) instances of that type (that might - have been intercepted and - initializers might have been applied). - It is the job of the to return a Func<object> - that applies the proper caching. The Func<object> that is returned by the - will be stored for that registration (every - registration will store its own Func<object> delegate) and this delegate will be - called every time the service is resolved (by calling - container.GetInstance<TService> or when that service is injected into another - type). - - The name of the lifestyle to create. The name is used to display the lifestyle - in the debugger. - A factory delegate that takes a Func<object> delegate - that will produce a transient instance and returns a delegate that returns cached instances. - A new . - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is an empty string. - - The following example shows the creation of a lifestyle that caches registered instances for 10 - minutes: - - { - TimeSpan timeout = TimeSpan.FromMinutes(10); - var syncRoot = new object(); - var expirationTime = DateTime.MinValue; - object instance = null; - - // If the application has multiple registrations using this lifestyle, each registration - // will get its own Func delegate (created here) and therefore get its own set - // of variables as defined above. - return () => - { - lock (syncRoot) - { - if (expirationTime < DateTime.UtcNow) - { - instance = instanceCreator(); - expirationTime = DateTime.UtcNow.Add(timeout); - } - - return instance; - } - }; - }); - - var container = new Container(); - - // We can reuse the created lifestyle for multiple registrations. - container.Register(customLifestyle); - container.Register(customLifestyle); - ]]> - - + + + Gets the base that describes the service types of its + . The value often be either (in case this is a + root group) or a partial generic type to allow hierarchical grouping of a large number of related + generic types. + + The . + + + Gets the friendly name of the group. + The name. + + + Gets the description of the group. + The description. + + + Gets the diagnostic type of all grouped instances. + The . + + + Gets the parent or null (Nothing in VB) when this is the + root group. + The . + + + Gets the collection of child s. + A collection of elements. + + + Gets the collection of instances. + /// A collection of elements. + + + + Base class for types that hold information about a single diagnostic message or warning for a + particular type or part of the configuration. + + + + Gets the severity of this result. + The . + + + Gets the diagnostic type of this result. + The . + + + Gets the service type to which this warning is related. + A . + + + Gets the description of the diagnostic result. + A with the description. + + + Gets the documentation URL of the diagnostic result. + A with the URL. + + + Gets the hierarchical group to which this diagnostic result belongs. + The . + + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Specifies the list of severity levels that diagnostic results can have. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + + Information messages and tips about the configuration. + + + Warning messages that are likely to cause problems in your application. + + - Creates a new instance for the given - that will create new instances of specified caching as - specified by this lifestyle. + Specifies the list of diagnostic types that are currently supported by the diagnostic + . Note that new diagnostic types might be added in future versions. + For more information, please read the + Diagnosing your configuration using the Diagnostic + Services wiki documentation. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance for the given - that will create new instances instance using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns about + a concrete type that was not registered explicitly and was not resolved using unregistered type + resolution, but was created by the container using the transient lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Diagnostic type that warns when a + component depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. + Diagnostic type that warns when a + component depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. - The concrete type that will be registered. - The instance for which a - must be created. - A new or cached instance. - Thrown when is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when a component depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when multiple registrations map to the same component and + lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. - This method might fail when run in a partial trust sandbox when - is an internal type. + Diagnostic type that warns when a component is registered as transient, while implementing + . + For more information, see: https://simpleinjector.org/diadt. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when multiple registrations exist that map to the same component but + with different lifestyles, which will cause the component to be cached in different -possibly + incompatible- ways. + For more information, see: https://simpleinjector.org/diaal. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic result for a warning about a component that is registered as transient, but implements + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - The delegate that will be responsible for creating new instances. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + - When overridden in a derived class, - creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Diagnostic result for a warning about a + component that depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + - When overridden in a derived class, - creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic result that warns about a + component that depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the instance that describes the current relationship between the checked component + and the short-circuited dependency. + The . + + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterConditional - overload that takes this delegate. This type contains information about the open generic service that - is about to be created and it allows the user to examine the given instance to decide whether this - implementation should be created or not. + Gets the collection of registrations that have the component's current dependency as + implementation type, but have a lifestyle that is different than the current dependency. + + A collection of instances. + + + + Diagnostic result that warns about a component that depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. + + + + Gets the created type. + A . + + + Gets the list of registrations that are dependencies of the . + A collection of instances. + + + + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - - Please see the - Register - method for more information. - - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the lifestyle on which instances are torn. + A . - - Gets the closed generic implementation type that will be created by the container. - The implementation type. + + Gets the implementation type that the affected registrations map to. + A . - - Gets a value indicating whether a previous Register registration has already - been applied for the given . - The indication whether the event has been handled. + + Gets the list of registrations that are affected by this warning. + A list of instances. - + - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. + Thrown by the container in case of a diagnostic error. - The or null. - + - A Registration implements lifestyle based caching for a single service and allows building an - that describes the creation of the service. + Initializes a new instance of the class. - - implementations create a new Registration instance for each registered - service type. s returned from the - BuildExpression method can be - intercepted by any event registered with , have - initializers - applied, and the caching particular to its lifestyle have been applied. Interception using the - Container.ExpressionBuilt will not - be applied in the Registration, but will be applied in . - - See the documentation for an example. - - + - Initializes a new instance of the class. + Initializes a new instance of the class with a specified error + message. - The this that created this registration. - The instance for this registration. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - Gets the type that this instance will create. - The type that this instance will create. - - - Gets the this that created this registration. - The this that created this registration. - - - Gets the instance for this registration. - The instance for this registration. + The message that describes the error. - - Gets or sets a value indicating whether this registration object contains a user - supplied instanceCreator factory delegate. + + + Initializes a new instance of the class with a specified error + message. + + The list of errors. - + - Builds a new with the correct caching (according to the specifications of - its ) applied. + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. - An . + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual + Basic) if no inner exception is specified. + - + - Gets the list of instances. Note that the list is only available - after calling . + Initializes a new instance of the class with serialized data. - A new array containing the instances. + + The that holds the serialized object data about the exception + being thrown. + + + The that contains contextual information about the source or + destination. + + + The parameter is null. + + + The class name is null or hresult is zero (0). + - + + Gets the list of instances. + A list of instances. + + - Initializes an already created instance and applies properties and initializers to that instance. + Provides data for and interaction with the + ExpressionBuilding event of + the . An observer can change the + property to change the component that is + currently being built. - - This method is especially useful in integration scenarios where the given platform is in control - of creating certain types. By passing the instance created by the platform to this method, the - container is still able to apply any properties (as defined using a custom - ) and by applying any initializers. - - The instance to initialize. - Thrown when is a null reference - (Nothing in VB). - Thrown when the supplied is not - of type . - + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + - Suppressing the supplied for the given registration. + Gets the type that is known to be returned by the + Expression (most often the implementation + type used in the Register call). This type will be a derivative of + RegisteredServiceType (or + or RegisteredServiceType itself). If the Expression is changed, the new expression + must also return an instance of type KnownImplementationType or a sub type. + This information must be described in the new Expression. - The . - The justification of why the warning must be suppressed. - Thrown when is a null - reference. - Thrown when either is an - empty string or when is not a valid value of . - + A . - + + Gets the lifestyle for the component that is currently being built. + The . + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + - Builds a delegate for the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers - that are applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - A delegate. - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds a delegate for the creation of . - The returned might be intercepted by a - Container.ExpressionBuilding event, - and the creation of the will have been wrapped with a - delegate that executes the registered - initializers - that are applicable to the given (if any). + Provides data for and interaction with the + ExpressionBuilt event of + the . An observer can change the + property to change the component that is currently + being built. - A delegate. - Thrown when one of the arguments is a null reference. - + + Initializes a new instance of the class. + Type of the registered service. + The registered expression. + + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + + Gets or sets the current lifestyle of the registration. + The original lifestyle of the registration. + + - Builds an that describes the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers that are - applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - An . - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds an that describes the creation of . - The returned might be intercepted - by a Container.ExpressionBuilding - event, and the creation of the will have been wrapped with - a delegate that executes the registered - initializers that are applicable - to the InstanceProducer's ServiceType (if any). + Helper methods for the container. + + + + + Contains contextual information about the direct consumer for which the given dependency is injected + into. - An . - Thrown when one of the arguments is a null reference. - - Implements a cache for implementations. - - is thread-safe can be used over multiple threads concurrently, but note that the - cached instances might not be thread-safe. - + + Initializes a new instance of the class. + The constructor parameter for the created component. - - Initializes a new instance of the class. + + Initializes a new instance of the class. + The implementation type of the consumer of the component that should be created. + The property for the created component. - - Initializes a new instance of the class. - The container instance that the scope belongs to. + + Gets the service type of the consumer of the component that should be created. + The closed generic service type. - - Gets the container instance that this scope belongs to. - The instance. + + Gets the implementation type of the consumer of the component that should be created. + The implementation type. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Gets the information about the consumer's target in which the dependency is injected. The target + can be either a property or a constructor parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The for this context. - - - Adds the to the list of items that will get disposed when the - scope ends. - - - Instances that are registered for disposal, will be disposed in opposite order of registration and - they are guaranteed to be disposed when is called (even when - exceptions are thrown). This mimics the behavior of the C# and VB using statements, - where the method is called inside the finally block. - - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + + Returns a string that represents the . + A string. - + - Retrieves an item from the scope stored by the given or null when no - item is stored by that key. + Discovers the attributes of the code element (a property or parameter) where a dependency will be + injected into, and provides access to its meta data. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Stores an item by the given in the scope. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The key of the item to insert or override. - The actual item. May be null. - Thrown when paramref name="key"/> is a null reference - (Nothing in VB). + + Gets the constructor argument of the consumer of the component where the dependency will be + injected into. The property can return null. + The or null when the dependency is injected into a property. - - Releases all instances that are cached by the object. + + Gets the property of the consumer of the component where the dependency will be injected into. + The property can return null. + The or null when the dependency is injected into a constructor + argument instead. - + + Gets the name of the target. + A string containing the name of the target. + + + Gets the type of the target. + A containing the type of the target. + + + Gets the member of the target. This is either the constructor of the parameter, or in + case the target is a property, the property itself will be returned. + A containing the type of the target. + + - Releases all instances that are cached by the object. + Returns an array of all of the custom attributes defined on either the or + the , excluding named attributes, or an empty array if there are no custom + attributes. - False when only unmanaged resources should be released. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + There is more than one attribute of type attributeType + defined on this member. - + - Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly - or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly - defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal - or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create - more than one instance of such registered type. + Returns an array of custom attributes defined on either the or + the , identified by type, or an empty array if there are no custom + attributes of that type. + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + Thrown when attributeType is null. - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Signals the lifestyle whether instances should be - disposed or not. - Thrown when is null (Nothing in VB) - or an empty string. - - - Gets the length of the lifestyle. - The representing the length of this lifestyle. + + + Indicates whether one or more instance of attributeType is defined on this either the + or the . + + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + true if the attributeType is defined on this member; false otherwise. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The instance. - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect. + A custom attribute that matches T, or null if no such attribute is found. - + - Adds the to the list of items that will get disposed when the - scope ends. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The instance. - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect.The parameter to inspect. + True to inspect the ancestors of element; otherwise, false. + A custom attribute that matches T, or null if no such attribute is found. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The type of attribute to search for. + A custom attribute that matches attributeType, or null if no such attribute is found. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The container for which the delegate gets created. - A delegate. This method should never return null. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A custom attribute matching attributeType, or null if no such attribute is found. - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + A collection of the custom attributes that are applied to element and that match T, or + an empty collection if no such attributes exist. - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified + parameter, and optionally inspects the ancestors of that parameter. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A collection of the custom attributes that are applied to element and that match T, or an + empty collection if no such attributes exist. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + GetCurrentRegistrations() or + GetRegistration(Type, bool). - By default, this method calls the method and invokes the - returned delegate. This method can be overridden to provide an optimized way for getting the - current scope. + The Register method overloads create InstanceProducer instances internally, but + InstanceProducers can be created manually to implement special scenarios. An + InstanceProducer wraps instance. The Registration builds an + that describes the intend to create the instance according to a certain + lifestyle. The InstanceProducer on the other hand transforms this Expression to a + delegate and allows the actual instance to be created. A Registration itself can't create any + instance. The InsanceProducer allows intercepting created instances by hooking onto the + Container.ExpressionBuilt event. The + RegisterDecorator methods for + instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance + with a decorator. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + + The following example shows the creation of two different InstanceProducer instances that wrap + the same Registration instance. Since the Registration is created using the + Singleton lifestyle, both producers will return + the same instance. The InstanceProducer for the Interface1 however, will wrap that + instance in a (transient) Interface1Decorator. + (container); + + var producer1 = new InstanceProducer(typeof(Interface1), registration); + var producer2 = new InstanceProducer(typeof(Interface2), registration); + + container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); + + var instance1 = (Interface1)producer1.GetInstance(); + var instance2 = (Interface2)producer2.GetInstance(); + + Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); + Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + + Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + ]]> + - - Internal helper for string resources. + + Initializes a new instance of the class. + The service type for which this instance is created. + The . - + - Contains contextual information for creating an implementation type. + Gets the for this registration. The returned lifestyle can differ from the + lifestyle that is used during the registration. This can happen for instance when the registration + is changed by an ExpressionBuilt + registration or gets decorated. - - Please see the - Register - method for more information. - + The for this registration. - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the service type for which this producer produces instances. + A instance. - - - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. - - The or null. + + Gets the instance for this instance. + The . - + - Returns a list of base types and interfaces of implementationType that either - equal to serviceType or are closed or partially closed version of serviceType (in case - serviceType itself is generic). - So: - -in case serviceType is non generic, only serviceType will be returned. - -If implementationType is open generic, serviceType will be returned (or a partially closed - version of serviceType is returned). - -If serviceType is generic and implementationType is not, a closed version of serviceType will - be returned. - -If implementationType implements multiple (partially) closed versions of serviceType, all those - (partially) closed versions will be returned. + Creates a new based on the given + and where the will be used as-is; + no interception (using ExpressionBuilt) such as + decorators will be applied. - The (open generic) service type to match. - The implementationType to search. - A list of types. + The service type for which this instance is created. + The expression that describes the instance to be produced. + The instance for this registration. + A new that describes the expression. - - Useful extensions on . + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed - in a C#-like syntax. Ideal for reporting type names in exception messages. + Builds an expression that expresses the intent to get an instance by the current producer. A call + to this method locks the container. No new registrations can't be made after a call to this method. - The type to convert. - A human-readable string representation of that type. - Thrown when the supplied argument is a null reference. + An Expression. - + - Returns true is there is a closed version of the supplied - that is assignable from the current . This method returns true when either - itself, one of its base classes or one of its implemented interfaces is a - closed version of ; otherwise false. + Gets the collection of relationships for this instance that the container knows about. + This includes relationships between the registered type and its dependencies and relationships + between applied decorators and their dependencies. Note that types that are not newed up by the + container and properties that are injected inside a custom delegate that is registered using the + RegisterInitializer + method are unknown to the container and are not returned from this method. + Also note that this method will return an empty collection when called before the + registered type is requested from the container (or before + Verify is called). - The type to check. - The generic type definition to match. - True when type is assignable; otherwise false. + An array of instances. - + - Gets the single closed version of that the current - is assignable from. In case none or multiple matching closed types are - found, and exception is thrown. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Builds a string representation of the object graph with the current instance as root of the + graph. - The type to check. - The generic type definition to match. - The matching closed type. - Thrown when one of the arguments is a null reference. - Thrown when is not - a generic type or when none of the base classes or implemented interfaces of - Thrown when multiple matching closed generic types - are found. + A string representation of the object graph. + Thrown when this method is called before + or have been called. These calls can be + done directly and explicitly by the user on this instance, indirectly by calling + or on an instance that depends on this + instance, or by calling Verify on the container. + - + - Gets the list of closed versions of that the current - is assignable from. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + or . - The type to check. - The generic type definition to match. - A list of matching closed generic types. + The service type. - - - Defines options to control the types returned from the - GetTypesToRegister - method. For a type to be returned, it should match all the conditions described by the class's - properties. In other words, in case the searched assembly contains a generic type, that is both a - decorator and a composite, it will only be returned by GetTypesToRegister in case both - , and - are set to true. - + + Initializes a new instance of the class. + The . - - Initializes a new instance of the class. + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Gets or sets a value indicating whether decorator types should be included in the result. The default - value of this property is false. A type is considered a decorator if the type's constructor - contains a parameter of the type that exactly matches the serviceType argument, - supplied to the - GetTypesToRegister - method, or when there is a argument where T matches the - serviceType argument. + A map containing a generic argument (such as T) and the concrete type (such as Int32) that it + represents. - A boolean. - + + Implements equality. Needed for doing LINQ distinct operations. + The other to compare to. + True or false. + + + Overrides the default hash code. Needed for doing LINQ distinct operations. + An 32 bit integer. + + - Gets or sets a value indicating whether generic type definitions (types that have - Type.IsGenericTypeDefinition - set to true) - should be included in the result. The default value for this property is false. + Container controlled collections can be supplied with both Type objects or direct Registration + instances. - A boolean. - + + Will never be null. Can be open-generic. + + + Can be null. + + - Gets or sets a value indicating whether composite types should be included in the result. The default - value of this property is true. A type is considered a composite if the type's constructor - contains a parameter of IEnumerable<T>, ICollection<T>, - IList<T>, IReadOnlyCollection<T>, - IReadOnlyList<T> or T[] (array of T), where T - exactly matches the serviceType argument, supplied to the - GetTypesToRegister - method. + Gets a message that describes the current exception. - A boolean. + The error message that explains the reason for the exception, or an empty string(""). - + - Provides data for and interaction with the - ResolveUnregisteredType event of - the . An observer can check the - to see whether the unregistered type can be handled. The - method can be called to register a delegate - that allows creation of instances of the unregistered for this and future requests. + Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done + by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a + single InstanceProducer and therefore a single service type. - - Gets the unregistered service type that is currently requested. - The unregistered service type that is currently requested. - - + - Gets a value indicating whether the event represented by this instance has been handled. - This property will return true when has been called on - this instance. + Allows retrieving the concrete types of the generic type arguments of that must be used to create a + closed generic implementation of a given open generic implementation, based on on the concrete + arguments of the given closed base type. - The indication whether the event has been handled. - + - Registers a delegate that allows creation of instances of the type - expressed by the for this and future requests. The delegate - will be caches and future requests will directly call that delegate. + Helper class for building closed generic type for a given open generic type and a closed generic base. - The delegate that allows creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + Result of the GenericTypeBuilder. + + - Registers an that describes the creation of instances of the type - expressed by the for this and future requests. The delegate - will be cached and future requests will directly use that expression or the compiled delegate. + A open generic type with the concrete arguments that can be used to create a closed generic type. - - NOTE: If possible, use the Register(Registration) overload, - since this allows the analysis services to determine any configuration errors on the lifestyle of - the registration. - - The expression that describes the creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + This interface is not meant for public use. + + + Please do not use. + Do not use. + + + PLease do not use. + Do not use. + + - Registers a that describes the creation of instances of the type - expressed by the for this and future requests. The - registration will be cached and future requests will directly call unon that registration, the - expression that it generates or the delegate that gets compiled from that expression. + Allows validating an ArgumentMapping. - The registration that describes the creation of instances according to - the registration's lifestyle of the type expressed by the . - Thrown when the is a - null reference. - Thrown when the is a - not exactly of type where T equals the . - - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + - This enumeration has defines in which way the container should run the verification process. + Factory for the creation of a delegate that applies caching to the supplied + . + A factory for creating new instances. + A factory that returns cached instances. - + - Specifies that the container performs verification only, which means that it will test whether - all registrations can be constructed by iterating the registrations and letting the container - create at least one instance of each registration. An - will be thrown in case the configuration is invalid. + Instances returned from the container can be cached. The contains several + overloads of the Register method that take a Lifestyle instance as argument to define + how returned instances should be cached. The core library contains two lifestyles out of the box. By + supplying Lifestyle.Transient, the registered instance is not + cached; a new instance is returned every time it is requested or injected. By supplying + Lifestyle.Singleton instances can be cached indefinitely; only + a single instance of the registered component will be returned by that container instance. Other + lifestyles are defined in integration and extension packages. The + CreateCustom method allows defining a custom lifestyle and + the CreateHybrid method + allows creating a lifestyle that mixes multiple other lifestyles. + + This type is abstract and can be overridden to implement a custom lifestyle. + - + - Specifies that the container will run diagnostic analysis after the verification succeeded. The - container will diagnose the configuration with a subset of the available diagnostic warnings, that - are most likely an indication of a configuration mistake. A complete set of diagnostic warnings - can be retrieved by calling - Analyzer.Analyze or by viewing the - container in the Visual Studio debugger, after the verification has succeeded. + The lifestyle instance that doesn't cache instances. A new instance of the specified + component is created every time the registered service is requested or injected. + + The following example registers the SomeServiceImpl implementation for the + ISomeService service type using the Transient lifestyle: + (Lifestyle.Transient); + ]]> + Note that Transient is the default lifestyle, the previous registration can be reduced to + the following: + (); + ]]> + - + - Extension methods for enable advanced scenarios. + + The lifestyle that caches components according to the lifetime of the container's configured + scoped lifestyle. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the active scope gets disposed. + + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Scoped lifestyle: + (Lifestyle.Scoped); + ]]> + - + - Determines whether the specified container is locked making any new registrations. The container - is automatically locked when GetInstance is called for the - first time. + + The lifestyle that caches components during the lifetime of the instance + and guarantees that only a single instance of that component is created for that instance. Since + general use is to create a single Container instance for the lifetime of the application / + AppDomain, this would mean that only a single instance of that component would exist during the + lifetime of the application. In a multi-threaded applications, implementations registered using + this lifestyle must be thread-safe. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the container gets disposed. + - The container. - - true if the specified container is locked; otherwise, false. - - Thrown when is null. + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Singleton lifestyle: + (Lifestyle.Singleton); + ]]> + - - Determines whether the specified container is currently verifying its configuration. - The container. - true if the specified container is verifying; otherwise, false. - Thrown when is null. + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. - + + Gets the user friendly name of this lifestyle. + The user friendly name of this lifestyle. + + - Retrieves an item from the container stored by the given or null when no - item is stored by that key. + Gets the length of the lifestyle. Implementers must implement this property. The diagnostic + services use this value to compare lifestyles with each other to determine lifestyle + misconfigurations. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The container. - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). + The representing the length of this lifestyle. - + - Stores an item by the given in the container. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The container. - The key of the item to insert or override. - The actual item. May be null. - Thrown when either or - is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Adds an item by the given in the container by using the specified function, - if the key does not already exist. This operation is atomic. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - The Type of the item to create. - The container. - The key of the item to insert or override. - The function used to generate a value for the given key. The supplied - value of will be supplied to the function when called. - The stored item or the item from the . - Thrown when either , - or is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The registration to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The lifestyle to use when + returns true. + The lifestyle to use when + returns false. + A new hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, is open generic, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + lifestyle.GetCurrentScope(container) != null, + lifestyle, + Lifestyle.Transient); + + var mixedScopeLifestyle = Lifestyle.CreateHybrid( + () => HttpContext.Current != null, + new WebRequestLifestyle(), + mixedLifetimeTransientLifestyle); + ]]> + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The implementation type to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The scoped lifestyle to use when + returns true. + The scoped lifestyle to use when + returns false. + A new scoped hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). - - - Deprecation extensions. + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + - + - This interface method has been removed. Please call GetInstanceProducerFor instead. + Creates a custom lifestyle using the supplied delegate. - The behavior. - The consumer. - Throws an exception. + + The supplied will be called just once per registered + service. The supplied will be called by the framework + when the type is resolved for the first time, and the framework will supply the factory with a + Func<object> for creating new (transient) instances of that type (that might + have been intercepted and + initializers might have been applied). + It is the job of the to return a Func<object> + that applies the proper caching. The Func<object> that is returned by the + will be stored for that registration (every + registration will store its own Func<object> delegate) and this delegate will be + called every time the service is resolved (by calling + container.GetInstance<TService> or when that service is injected into another + type). + + The name of the lifestyle to create. The name is used to display the lifestyle + in the debugger. + A factory delegate that takes a Func<object> delegate + that will produce a transient instance and returns a delegate that returns cached instances. + A new . + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is an empty string. + + The following example shows the creation of a lifestyle that caches registered instances for 10 + minutes: + + { + TimeSpan timeout = TimeSpan.FromMinutes(10); + var syncRoot = new object(); + var expirationTime = DateTime.MinValue; + object instance = null; + + // If the application has multiple registrations using this lifestyle, each registration + // will get its own Func delegate (created here) and therefore get its own set + // of variables as defined above. + return () => + { + lock (syncRoot) + { + if (expirationTime < DateTime.UtcNow) + { + instance = instanceCreator(); + expirationTime = DateTime.UtcNow.Add(timeout); + } + + return instance; + } + }; + }); + + var container = new Container(); + + // We can reuse the created lifestyle for multiple registrations. + container.Register(customLifestyle); + container.Register(customLifestyle); + ]]> + - + - This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. - The behavior. - Type of the abstraction that is requested. - The property to check. - True when the property should be injected. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Defines the container's behavior for finding a suitable constructor for the creation of a type. - Set the ConstructorResolutionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified caching as + specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the given 's constructor that can be used by the - container to create that instance. + Creates a new instance for the given + that will create new instances instance using the supplied + with the caching as specified by this lifestyle. - Type of the implementation to find a suitable constructor for. - - The . This method never returns null. - - Thrown when no suitable constructor could be found. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Defines the container's behavior for building an expression tree for an dependency to inject, based on - the information of the consuming type the dependency is injected into. - Set the ConstructorInjectionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - - Verifies the specified . - Contextual information about the consumer where the built dependency is - injected into. - - Thrown when the type of the target supplied with - the supplied cannot be used for auto wiring. - Thrown when the supplied argument is a null reference. - - + - Gets the for the - Target of the supplied . + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. - Contextual information about the consumer where the built dependency is - injected into. - The indication whether the method should return null or throw - an exception when the type is not registered. - An that describes the intend of creating that - Target. This method never returns null. - Thrown when the argument is a null reference. + The concrete type that will be registered. + The instance for which a + must be created. + A new or cached instance. + Thrown when is a null + reference (Nothing in VB). - + - Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle - is explicitly supplied. - Set the LifestyleSelectionBehavior - property of the container's property to change the default behavior - of the container. By default, when no lifestyle is explicitly supplied, the - Transient lifestyle is used. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - - Selects the lifestyle based on the supplied type information. - Type of the implementation to that is registered. - The suited for the given type. - Thrown when either one of the arguments is a null reference. - - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterResolveInterceptor - method that takes this delegate. This type contains contextual information about a resolved type and it - allows the user to examine the given instance to decide whether the - should be applied or not. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + This method might fail when run in a partial trust sandbox when + is an internal type. - The or null (Nothing in VB) when the instance producer is - unknown. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + This overload has been deprecated. Please call + instead. - /// The . + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterInitializer - overload that takes this delegate. This type contains contextual information about the creation and it - allows the user to examine the given instance to decide whether the instance should be initialized or - not. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The delegate that will be responsible for creating new instances. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets a null reference. This property has been deprecated. + When overridden in a derived class, + creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - The null (Nothing in VB). + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Gets the that is responsible for the initialization of the created - instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - /// The . + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Contains data that can be used to initialize a created instance. This data includes the actual - created and the information about the created instance. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. An execution context scope flows with the logical execution context. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + The following example shows the usage of the ExecutionContextScopeLifestyle class: + (Lifestyle.Scoped); + + using (AsyncScopedLifestyle.BeginScope(container)) + { + var instance1 = container.GetInstance(); + // ... + } + ]]> + - - Initializes a new instance of the struct. - The that contains contextual information - about the created instance. - The created instance. - - - Gets the with contextual information about the - created instance. - The . - - - Gets the created instance. - The created instance. - - - Returns the hash code for this instance. - A 32-bit signed integer that is the hash code for this instance. - - - Indicates whether this instance and a specified object are equal. - Another object to compare to. - True if the current object is equal to the other parameter; otherwise, false. + + Initializes a new instance of the class. - + - Indicates whether the current object is equal to another object of the same type. + Begins a new scope for the given . - An object to compare with this object. - True if the current object is equal to the other parameter; otherwise, false. + The container. + A new instance. + + Thrown when the is a null reference. - + - Indicates whether the values of two specified objects are equal. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. - The first object to compare. - The second object to compare. - True if a and b are equal; otherwise, false. + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Indicates whether the values of two specified objects are - not equal. + This lifestyle can be used to implement ambient context-less scoping in Simple Injector. This lifestyle + can be set as DefaultScopedLifestyle and later used via Lifestyle.Scoped to register scoped instances, + while instances are resolved via Scope.GetInstance. - The first object to compare. - The second object to compare. - True if a and b are not equal; otherwise, false. - + - Defines the container's behavior for selecting properties to inject during the creation of a type. - Set the PropertySelectionBehavior - property of the container's property to change the default behavior - of the container. By default, no properties will be injected by the container. + Forwards CreateRegistration calls to the lifestyle that is returned from the registered + container.Options.LifestyleSelectionBehavior. - + - Determines whether a property should be injected by the container upon creation of its type. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. - - The type being created for which the property should be injected. Note that this might a - different type than the type on which the property is declared (which might be a base class). - The property to check. - True when the property should be injected. + + The following example shows the usage of the ThreadScopedLifestyle class: + (Lifestyle.Scoped); + + using (container.BeginLifetimeScope()) + { + var instance1 = container.GetInstance(); + + // This call will return the same instance. + var instance2 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); + + // Create a nested scope. + using (container.BeginLifetimeScope()) + { + // A nested scope gets its own instance. + var instance3 = container.GetInstance(); + + Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); + + // This call will return the same instance. + var instance4 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); + } + } + ]]> + - - - A known relationship defines a relationship between two types. The Diagnostics Debug View uses this - information to spot possible misconfigurations. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . - - Initializes a new instance of the class. - The implementation type of the parent type. - The lifestyle of the parent type. - The type that the parent depends on (it is injected into the parent). - - - Gets the implementation type of the parent type of the relationship. - The implementation type of the parent type of the relationship. - - - Gets the lifestyle of the parent type of the relationship. - The lifestyle of the parent type of the relationship. - - - Gets the type that the parent depends on (it is injected into the parent). - The type that the parent depends on. + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + - - Serves as a hash function for a particular type. - A hash code for the current . + + + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Determines whether the specified is equal to the current - . + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. - The object to compare with the current object. - True if the specified is equal to the current - ; otherwise, false. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterConditional + overload that takes this delegate. This type contains information about the open generic service that + is about to be created and it allows the user to examine the given instance to decide whether this + implementation should be created or not. + + Please see the + Register + method for more information. + - - Initializes a new instance of the struct. - The scope factory. - The container. + + Gets the closed generic service type that is to be created. + The closed generic service type. - - Gets the lazily initialized Scope of the current LazyScope instance. - The current Scope or null. + + Gets the closed generic implementation type that will be created by the container. + The implementation type. - - - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. - - Implementation type. + + Gets a value indicating whether a previous Register registration has already + been applied for the given . + The indication whether the event has been handled. - + - Initializes a new instance of the - struct. - The registration. - - - Gets the lazily initialized instance for the of the current LazyScopedRegistration. - The scope that is used to retrieve the instance. - The cached instance. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + + The or null. - + - Hooks into the building process and adds a decorator if needed. + A Registration implements lifestyle based caching for a single service and allows building an + that describes the creation of the service. + + implementations create a new Registration instance for each registered + service type. s returned from the + BuildExpression method can be + intercepted by any event registered with , have + initializers + applied, and the caching particular to its lifestyle have been applied. Interception using the + Container.ExpressionBuilt will not + be applied in the Registration, but will be applied in . + + See the documentation for an example. + - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diaal. + Initializes a new instance of the class. + The this that created this registration. + The instance for this registration. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - Gets the lifestyles that causes the registrations to be conflicting. - instances. + + Gets the type that this instance will create. + The type that this instance will create. - - Gets the implementation type that the affected registrations map to. - A . + + Gets the this that created this registration. + The this that created this registration. - - Gets the registration that caused this warning. - /// An . + + Gets the instance for this registration. + The instance for this registration. - + + Gets or sets a value indicating whether this registration object contains a user + supplied instanceCreator factory delegate. + + - Gets the list of registrations that are in conflict with the . + Builds a new with the correct caching (according to the specifications of + its ) applied. - A list of instances. + An . - + - Entry point for doing diagnostic analysis on instances. + Gets the list of instances. Note that the list is only available + after calling . - - The following example shows the usage of the Analyzer class: - - + A new array containing the instances. - + - Analyzes the supplied instance. + Initializes an already created instance and applies properties and initializers to that instance. - The container instance to analyze. - A collection of sub types that describe the diagnostic - warnings and messages. + + This method is especially useful in integration scenarios where the given platform is in control + of creating certain types. By passing the instance created by the platform to this method, the + container is still able to apply any properties (as defined using a custom + ) and by applying any initializers. + + The instance to initialize. + Thrown when is a null reference + (Nothing in VB). + Thrown when the supplied is not + of type . - + - Diagnostic result for a warning about a concrete type that was not registered explicitly and was not - resolved using unregistered type resolution, but was created by the container using the transient - lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Suppressing the supplied for the given registration. + The . + The justification of why the warning must be suppressed. + Thrown when is a null + reference. + Thrown when either is an + empty string or when is not a valid value of . + - - Gets a collection of instances that describe all - container-registered dependencies for the given component. - List of objects. - - + - A hierarchical group of . + Builds a delegate for the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers + that are applicable to the given (if any). + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + A delegate. + Thrown when one of the arguments is a null reference. - + - Gets the base that describes the service types of its - . The value often be either (in case this is a - root group) or a partial generic type to allow hierarchical grouping of a large number of related - generic types. + Builds a delegate for the creation of . + The returned might be intercepted by a + Container.ExpressionBuilding event, + and the creation of the will have been wrapped with a + delegate that executes the registered + initializers + that are applicable to the given (if any). - The . - - - Gets the friendly name of the group. - The name. - - - Gets the description of the group. - The description. - - - Gets the diagnostic type of all grouped instances. - The . - - - Gets the parent or null (Nothing in VB) when this is the - root group. - The . - - - Gets the collection of child s. - A collection of elements. + A delegate. + Thrown when one of the arguments is a null reference. - - Gets the collection of instances. - /// A collection of elements. + + + Builds an that describes the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers that are + applicable to the given (if any). + + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + An . + Thrown when one of the arguments is a null reference. - + - Base class for types that hold information about a single diagnostic message or warning for a - particular type or part of the configuration. + Builds an that describes the creation of . + The returned might be intercepted + by a Container.ExpressionBuilding + event, and the creation of the will have been wrapped with + a delegate that executes the registered + initializers that are applicable + to the InstanceProducer's ServiceType (if any). + An . + Thrown when one of the arguments is a null reference. - - Gets the severity of this result. - The . + + Implements a cache for implementations. + + is thread-safe can be used over multiple threads concurrently, but note that the + cached instances might not be thread-safe. + - - Gets the diagnostic type of this result. - The . + + Initializes a new instance of the class. - - Gets the service type to which this warning is related. - A . + + Initializes a new instance of the class. + The container instance that the scope belongs to. - - Gets the description of the diagnostic result. - A with the description. + + Gets the container instance that this scope belongs to. + The instance. - - Gets the documentation URL of the diagnostic result. - A with the URL. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - - Gets the hierarchical group to which this diagnostic result belongs. - The . + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - + - Specifies the list of severity levels that diagnostic results can have. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Information messages and tips about the configuration. - - - Warning messages that are likely to cause problems in your application. - - + - Specifies the list of diagnostic types that are currently supported by the diagnostic - . Note that new diagnostic types might be added in future versions. - For more information, please read the - Diagnosing your configuration using the Diagnostic - Services wiki documentation. + Adds the to the list of items that will get disposed when the + scope ends. + + Instances that are registered for disposal, will be disposed in opposite order of registration and + they are guaranteed to be disposed when is called (even when + exceptions are thrown). This mimics the behavior of the C# and VB using statements, + where the method is called inside the finally block. + + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - + - Diagnostic type that warns about - a concrete type that was not registered explicitly and was not resolved using unregistered type - resolution, but was created by the container using the transient lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Retrieves an item from the scope stored by the given or null when no + item is stored by that key. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . + + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + + Stores an item by the given in the scope. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. + + The key of the item to insert or override. + The actual item. May be null. + Thrown when paramref name="key"/> is a null reference + (Nothing in VB). + + - Diagnostic type that warns when a - component depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Returns the list of instances that will be disposed of when this + instance is being disposed. The list contains scoped instances that are cached in this instance, + and instances explicitly registered for disposal using . The instances are returned + in order of creation/registration. When Scope.Dispose is called, the scope will ensure + is called on each instance in this list. The instance will be disposed in opposite + order as they appear in the list. + The list of instances that will be disposed of when this + instance is being disposed. + + + Releases all instances that are cached by the object. - + - Diagnostic type that warns when a - component depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Releases all instances that are cached by the object. + False when only unmanaged resources should be released. - + - Diagnostic type that warns when a component depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly + or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly + defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal + or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create + more than one instance of such registered type. - + - Diagnostic type that warns when multiple registrations map to the same component and - lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Gets the scoped lifestyle that allows Scoped registrations to be resolved direclty from the + by calling . This allows multiple + scopes to be active and overlap within the same logical context, such as a single thread, or an + asynchronous context. - + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. + + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Signals the lifestyle whether instances should be + disposed or not. + Thrown when is null (Nothing in VB) + or an empty string. + + + Gets the length of the lifestyle. + The representing the length of this lifestyle. + + - Diagnostic type that warns when a component is registered as transient, while implementing - . - For more information, see: https://simpleinjector.org/diadt. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The instance. + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when multiple registrations exist that map to the same component but - with different lifestyles, which will cause the component to be cached in different -possibly - incompatible- ways. - For more information, see: https://simpleinjector.org/diaal. + Adds the to the list of items that will get disposed when the + scope ends. + The instance. + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic result for a warning about a component that is registered as transient, but implements - . - For more information, see: https://simpleinjector.org/diadt. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result for a warning about a - component that depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method should never return null. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result that warns about a - component that depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. - - Gets the instance that describes the current relationship between the checked component - and the short-circuited dependency. - The . - - + - Gets the collection of registrations that have the component's current dependency as - implementation type, but have a lifestyle that is different than the current dependency. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - A collection of instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. - + - Diagnostic result that warns about a component that depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + By default, this method calls the method and invokes the + returned delegate. This method can be overridden to provide an optimized way for getting the + current scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the created type. - A . - - - Gets the list of registrations that are dependencies of the . - A collection of instances. + + Internal helper for string resources. - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Contains contextual information for creating an implementation type. + + Please see the + Register + method for more information. + - - Gets the lifestyle on which instances are torn. - A . - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the list of registrations that are affected by this warning. - A list of instances. + + Gets the closed generic service type that is to be created. + The closed generic service type. - + - A map containing a generic argument (such as T) and the concrete type (such as Int32) that it - represents. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + The or null. - - Implements equality. Needed for doing LINQ distinct operations. - The other to compare to. - True or false. - - - Overrides the default hash code. Needed for doing LINQ distinct operations. - An 32 bit integer. - - + - Container controlled collections can be supplied with both Type objects or direct Registration - instances. + Returns a list of base types and interfaces of implementationType that either + equal to serviceType or are closed or partially closed version of serviceType (in case + serviceType itself is generic). + So: + -in case serviceType is non generic, only serviceType will be returned. + -If implementationType is open generic, serviceType will be returned (or a partially closed + version of serviceType is returned). + -If serviceType is generic and implementationType is not, a closed version of serviceType will + be returned. + -If implementationType implements multiple (partially) closed versions of serviceType, all those + (partially) closed versions will be returned. + The (open generic) service type to match. + The implementationType to search. + A list of types. - - Will never be null. Can be open-generic. + + Useful extensions on . - - Can be null. + + + Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed + in a C#-like syntax. Ideal for reporting type names in exception messages. + + The type to convert. + A human-readable string representation of that type. + Thrown when the supplied argument is a null reference. - + - Gets a message that describes the current exception. + Returns true is there is a closed version of the supplied + that is assignable from the current . This method returns true when either + itself, one of its base classes or one of its implemented interfaces is a + closed version of ; otherwise false. - The error message that explains the reason for the exception, or an empty string(""). + The type to check. + The generic type definition to match. + True when type is assignable; otherwise false. - + - Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done - by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a - single InstanceProducer and therefore a single service type. + Gets the single closed version of that the current + is assignable from. In case none or multiple matching closed types are + found, and exception is thrown. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + The matching closed type. + Thrown when one of the arguments is a null reference. + Thrown when is not + a generic type or when none of the base classes or implemented interfaces of + are closed-versions of . + Thrown when multiple matching closed generic types + are found. - + - Allows retrieving the concrete types of the generic type arguments of that must be used to create a - closed generic implementation of a given open generic implementation, based on on the concrete - arguments of the given closed base type. + Gets the list of closed versions of that the current + is assignable from. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + A list of matching closed generic types. - + - Helper class for building closed generic type for a given open generic type and a closed generic base. + Defines options to control the types returned from the + GetTypesToRegister + method. For a type to be returned, it should match all the conditions described by the class's + properties. In other words, in case the searched assembly contains a generic type, that is both a + decorator and a composite, it will only be returned by GetTypesToRegister in case both + , and + are set to true. - - Result of the GenericTypeBuilder. + + Initializes a new instance of the class. - + - A open generic type with the concrete arguments that can be used to create a closed generic type. + Gets or sets a value indicating whether decorator types should be included in the result. The default + value of this property is false. A type is considered a decorator if the type's constructor + contains a parameter of the type that exactly matches the serviceType argument, + supplied to the + GetTypesToRegister + method, or when there is a argument where T matches the + serviceType argument. + A boolean. - - This interface is not meant for public use. - - - Please do not use. - Do not use. - - - PLease do not use. - Do not use. + + + Gets or sets a value indicating whether generic type definitions (types that have + Type.IsGenericTypeDefinition + set to true) + should be included in the result. The default value for this property is false. + + A boolean. - + - Allows validating an ArgumentMapping. + Gets or sets a value indicating whether composite types should be included in the result. The default + value of this property is true. A type is considered a composite if the type's constructor + contains a parameter of IEnumerable<T>, ICollection<T>, + IList<T>, IReadOnlyCollection<T>, + IReadOnlyList<T> or T[] (array of T), where T + exactly matches the serviceType argument, supplied to the + GetTypesToRegister + method. + A boolean. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. An execution context scope flows with the logical execution context. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Provides data for and interaction with the + ResolveUnregisteredType event of + the . An observer can check the + to see whether the unregistered type can be handled. The + method can be called to register a delegate + that allows creation of instances of the unregistered for this and future requests. - - The following example shows the usage of the ExecutionContextScopeLifestyle class: - (Lifestyle.Scoped); - - using (AsyncScopedLifestyle.BeginScope(container)) - { - var instance1 = container.GetInstance(); - // ... - } - ]]> - - - Initializes a new instance of the class. + + Gets the unregistered service type that is currently requested. + The unregistered service type that is currently requested. - + - Begins a new scope for the given . + Gets a value indicating whether the event represented by this instance has been handled. + This property will return true when has been called on + this instance. - The container. - A new instance. - - Thrown when the is a null reference. + The indication whether the event has been handled. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Registers a delegate that allows creation of instances of the type + expressed by the for this and future requests. The delegate + will be caches and future requests will directly call that delegate. - The container for which the delegate gets created. - A delegate. This method never returns null. + The delegate that allows creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Forwards CreateRegistration calls to the lifestyle that is returned from the registered - container.Options.LifestyleSelectionBehavior. + Registers an that describes the creation of instances of the type + expressed by the for this and future requests. The delegate + will be cached and future requests will directly use that expression or the compiled delegate. + + NOTE: If possible, use the Register(Registration) overload, + since this allows the analysis services to determine any configuration errors on the lifestyle of + the registration. + + The expression that describes the creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Registers a that describes the creation of instances of the type + expressed by the for this and future requests. The + registration will be cached and future requests will directly call unon that registration, the + expression that it generates or the delegate that gets compiled from that expression. - - The following example shows the usage of the ThreadScopedLifestyle class: - (Lifestyle.Scoped); - - using (container.BeginLifetimeScope()) - { - var instance1 = container.GetInstance(); - - // This call will return the same instance. - var instance2 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); - - // Create a nested scope. - using (container.BeginLifetimeScope()) - { - // A nested scope gets its own instance. - var instance3 = container.GetInstance(); - - Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); - - // This call will return the same instance. - var instance4 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); - } - } - ]]> - + The registration that describes the creation of instances according to + the registration's lifestyle of the type expressed by the . + Thrown when the is a + null reference. + Thrown when the is a + not exactly of type where T equals the . + + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + This enumeration has defines in which way the container should run the verification process. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - - - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Specifies that the container performs verification only, which means that it will test whether + all registrations can be constructed by iterating the registrations and letting the container + create at least one instance of each registration. An + will be thrown in case the configuration is invalid. - The container for which the delegate gets created. - A delegate. This method never returns null. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Specifies that the container will run diagnostic analysis after the verification succeeded. The + container will diagnose the configuration with a subset of the available diagnostic warnings, that + are most likely an indication of a configuration mistake. A complete set of diagnostic warnings + can be retrieved by calling + Analyzer.Analyze or by viewing the + container in the Visual Studio debugger, after the verification has succeeded. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. diff --git a/packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.dll b/packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.dll new file mode 100644 index 0000000000..42b8151fcb Binary files /dev/null and b/packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.dll differ diff --git a/packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.xml b/packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.xml similarity index 82% rename from packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.xml rename to packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.xml index 09f8ccf3a9..0cc281fec1 100644 --- a/packages/SimpleInjector.4.0.12/lib/net45/SimpleInjector.xml +++ b/packages/SimpleInjector.4.3.0/lib/net45/SimpleInjector.xml @@ -53,637 +53,1234 @@ The class name is null or hresult is zero (0). - + - The container. Create an instance of this type for registration of dependencies. + Extension methods for enable advanced scenarios. - - - Thread-safety: - Resolving instances can be done safely from multiple threads concurrently, but registration needs to - be done from one single thread. - - - It is therefore safe to call , , - GetService, and - and anything related to resolving instances from multiple thread - concurrently. It is however unsafe to call - RegisterXXX, - , , , - or anything related to registering from multiple threads concurrently. - - - Common Container methods specific for the full .NET version of Simple Injector. - Methods for batch registration. - Methods for registration of collections. - Methods for conditional registrations. - - These conditional registration methods lack a Func{PredicateContext, TService} predicate - method. This is deliberate, because would force the factory to be registered as transient, forcing - the whole parent structure to become transient as well. Besides this, it would blind the diagnostic - system, because it will stop at the delegate, instead of being able to analyze the object graph as - a whole. - - Methods for registration. - Methods for registration of decorators. - Methods for resolving instances. - Methods for verifying the container. - - - Initializes a new instance of the class. - - - Gets the container options. - The instance for this container. - + - Gets a value indicating whether the container is currently being verified on the current thread. + Determines whether the specified container is locked making any new registrations. The container + is automatically locked when GetInstance is called for the + first time. - True in case the container is currently being verified on the current thread; otherwise - false. + The container. + + true if the specified container is locked; otherwise, false. + + Thrown when is null. - - - Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is - returned from the registered container.Options.LifestyleSelectionBehavior. - + + Determines whether the specified container is currently verifying its configuration. + The container. + true if the specified container is verifying; otherwise, false. + Thrown when is null. - + - Returns an array with the current registrations. This list contains all explicitly registered - types, and all implicitly registered instances. Implicit registrations are all concrete - unregistered types that have been requested, all types that have been resolved using - unregistered type resolution (using the event), and - requested unregistered collections. Note that the result of this method may change over time, - because of these implicit registrations. + Retrieves an item from the container stored by the given or null when no + item is stored by that key. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . - An array of instances. + The container. + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + - Returns an array with the current registrations for root objects. Root objects are registrations - that are in the root of the object graph, meaning that no other registration is depending on it. + Stores an item by the given in the container. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - This list contains the root objects of all explicitly registered types, and all implicitly - registered instances. Implicit registrations are all concrete unregistered types that have been - requested, all types that have been resolved using unregistered type resolution (using the - event), and requested unregistered collections. Note that - the result of this method may change over time, because of these implicit registrations. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. - An array of instances. - Thrown when this method is called before - has been successfully called. - - - Determines whether the specified System.Object is equal to the current System.Object. - - The System.Object to compare with the current System.Object. - - True if the specified System.Object is equal to the current System.Object; otherwise, false. - - - - Returns the hash code of the current instance. - The hash code of the current instance. + The container. + The key of the item to insert or override. + The actual item. May be null. + Thrown when either or + is a null reference (Nothing in VB). - + - Returns a that represents the . + Adds an item by the given in the container by using the specified function, + if the key does not already exist. This operation is atomic. - - A that represents the . - - - - Gets the of the current instance. - The instance that represents the exact runtime - type of the current instance. - - - Releases all instances that are cached by the object. - - - Prevents any new registrations to be made to the container. - - - Releases all instances that are cached by the object. - True for a normal dispose operation; false to finalize the handle. + The Type of the item to create. + The container. + The key of the item to insert or override. + The function used to generate a value for the given key. The supplied + value of will be supplied to the function when called. + The stored item or the item from the . + Thrown when either , + or is a null reference (Nothing in VB). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with container's default lifestyle (which is transient by default). - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with the supplied . - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + + Deprecation extensions. + + - Registers all supplied based on the closed-generic version - of the given with the transient lifestyle. + This interface method has been removed. Please call GetInstanceProducerFor instead. - The definition of the open generic type. - A list types to be registered. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + The consumer. + Throws an exception. - + - Registers all supplied based on the closed-generic version - of the given with the given . + This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. - The definition of the open generic type. - A list types to be registered. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + Type of the abstraction that is requested. + The property to check. + True when the property should be injected. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. + Defines the container's behavior for finding a suitable constructor for the creation of a type. + Set the ConstructorResolutionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Gets the given 's constructor that can be used by the + container to create that instance. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). + Type of the implementation to find a suitable constructor for. + + The . This method never returns null. + + Thrown when no suitable constructor could be found. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Defines the container's behavior for building an expression tree for an dependency to inject, based on + the information of the consuming type the dependency is injected into. + Set the ConstructorInjectionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + + Verifies the specified . + Contextual information about the consumer where the built dependency is + injected into. + + Thrown when the type of the target supplied with + the supplied cannot be used for auto wiring. + Thrown when the supplied argument is a null reference. + + - Returns all concrete non-generic types that are located in the supplied - and implement or inherit from the supplied . - can be an open-generic type. + Gets the for the + Target of the supplied . - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). + Contextual information about the consumer where the built dependency is + injected into. + The indication whether the method should return null or throw + an exception when the type is not registered. + An that describes the intend of creating that + Target. This method never returns null. + Thrown when the argument is a null reference. - + - Returns all concrete types that are located in the supplied - and implement or inherit from the supplied and match the specified - . can be an open-generic type. + Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle + is explicitly supplied. + Set the LifestyleSelectionBehavior + property of the container's property to change the default behavior + of the container. By default, when no lifestyle is explicitly supplied, the + Transient lifestyle is used. - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - The options. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). - + + Selects the lifestyle based on the supplied type information. + Type of the implementation to that is registered. + The suited for the given type. + Thrown when either one of the arguments is a null reference. + + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterResolveInterceptor + method that takes this delegate. This type contains contextual information about a resolved type and it + allows the user to examine the given instance to decide whether the + should be applied or not. - The interface or base type that can be used to retrieve instances. - The container-uncontrolled collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - + - Registers a collection of singleton elements of type . + Gets the that is responsible for the initialization of the created + instance. - The interface or base type that can be used to retrieve instances. - The collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - Thrown when one of the elements of - is a null reference. + The or null (Nothing in VB) when the instance producer is + unknown. - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + /// The . - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterInitializer + overload that takes this delegate. This type contains contextual information about the creation and it + allows the user to examine the given instance to decide whether the instance should be initialized or + not. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets a null reference. This property has been deprecated. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + The null (Nothing in VB). - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. This can be - an a non-generic type, closed generic type or generic type definition. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - + /// The . - + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + Contains data that can be used to initialize a created instance. This data includes the actual + created and the information about the created instance. - The base type or interface for elements in the collection. - The collection of items to register. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - Thrown when represents an - open generic type. - + + Initializes a new instance of the struct. + The that contains contextual information + about the created instance. + The created instance. + + + Gets the with contextual information about the + created instance. + The . + + + Gets the created instance. + The created instance. + + + Returns the hash code for this instance. + A 32-bit signed integer that is the hash code for this instance. + + + Indicates whether this instance and a specified object are equal. + Another object to compare to. + True if the current object is equal to the other parameter; otherwise, false. + + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the current object is equal to another object of the same type. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + An object to compare with this object. + True if the current object is equal to the other parameter; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are equal. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The lifestyle that specifies how the returned instance will be cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are equal; otherwise, false. - + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are + not equal. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are not equal; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when and - are not a generic type or when - is a partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - - + + Initializes a new instance of the struct. + The scope factory. + The container. + + + Gets the lazily initialized Scope of the current LazyScope instance. + The current Scope or null. + + - Conditionally registers that an instance of the type returned from - will be returned every time a - is requested and where the supplied - returns true. The instance is cached according to the supplied - . Both the and - will only be evaluated a finite number of times; - they unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - A factory that allows building Type objects that define the - implementation type to inject, based on the given contextual information. The delegate is allowed - to return (partially) open-generic types. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the registration can be applied for - the requested service type. This predicate can be used to build a fallback mechanism where - multiple registrations for the same service type are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is a - partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - + Implementation type. - + - Conditionally registers that will be used every time a - is requested and where the supplied - returns true. The predicate will only be evaluated a finite number of times; the predicate is - unsuited for making decisions based on runtime conditions. + Initializes a new instance of the + struct. + The registration. + + + Gets the lazily initialized instance for the of the current LazyScopedRegistration. + The scope that is used to retrieve the instance. + The cached instance. + + + + Defines the container's behavior for selecting properties to inject during the creation of a type. + Set the PropertySelectionBehavior + property of the container's property to change the default behavior + of the container. By default, no properties will be injected by the container. - The base type or interface to register. This can be an open-generic type. - The instance to register. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is open generic or - is not assignable to . - - Thrown when this container instance is locked and can not be altered. - - - - Occurs when an instance of a type is requested that has not been registered explicitly, allowing - resolution of unregistered types before the container tries to create the type. - - - - The event is called by the container every time an - unregistered type is requested for the first time, allowing a developer to do unregistered type - resolution. By calling the + + + Determines whether a property should be injected by the container upon creation of its type. + + + The type being created for which the property should be injected. Note that this might a + different type than the type on which the property is declared (which might be a base class). + The property to check. + True when the property should be injected. + + + + A known relationship defines a relationship between two types. The Diagnostics Debug View uses this + information to spot possible misconfigurations. + + + + Initializes a new instance of the class. + The implementation type of the parent type. + The lifestyle of the parent type. + The type that the parent depends on (it is injected into the parent). + + + Gets the implementation type of the parent type of the relationship. + The implementation type of the parent type of the relationship. + + + Gets the lifestyle of the parent type of the relationship. + The lifestyle of the parent type of the relationship. + + + Gets the type that the parent depends on (it is injected into the parent). + The type that the parent depends on. + + + Serves as a hash function for a particular type. + A hash code for the current . + + + + Determines whether the specified is equal to the current + . + + The object to compare with the current object. + True if the specified is equal to the current + ; otherwise, false. + + + + The container. Create an instance of this type for registration of dependencies. + + + + Thread-safety: + Resolving instances can be done safely from multiple threads concurrently, but registration needs to + be done from one single thread. + + + It is therefore safe to call , , + GetService, and + and anything related to resolving instances from multiple thread + concurrently. It is however unsafe to call + RegisterXXX, + , , , + or anything related to registering from multiple threads concurrently. + + + Common Container methods specific for the full .NET version of Simple Injector. + Methods for batch registration. + Methods for registration of collections. + Methods for conditional registrations. + + These conditional registration methods lack a Func{PredicateContext, TService} predicate + method. This is deliberate, because would force the factory to be registered as transient, forcing + the whole parent structure to become transient as well. Besides this, it would blind the diagnostic + system, because it will stop at the delegate, instead of being able to analyze the object graph as + a whole. + + Methods for registration. + Methods for registration of decorators. + Methods for resolving instances. + Methods for verifying the container. + + + Initializes a new instance of the class. + + + Gets the container options. + The instance for this container. + + + + Gets a value indicating whether the container is currently being verified on the current thread. + + True in case the container is currently being verified on the current thread; otherwise + false. + + + + Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is + returned from the registered container.Options.LifestyleSelectionBehavior. + + + + + Returns an array with the current registrations. This list contains all explicitly registered + types, and all implicitly registered instances. Implicit registrations are all concrete + unregistered types that have been requested, all types that have been resolved using + unregistered type resolution (using the event), and + requested unregistered collections. Note that the result of this method may change over time, + because of these implicit registrations. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + + + + Returns an array with the current registrations for root objects. Root objects are registrations + that are in the root of the object graph, meaning that no other registration is depending on it. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + This list contains the root objects of all explicitly registered types, and all implicitly + registered instances. Implicit registrations are all concrete unregistered types that have been + requested, all types that have been resolved using unregistered type resolution (using the + event), and requested unregistered collections. Note that + the result of this method may change over time, because of these implicit registrations. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + Thrown when this method is called before + has been successfully called. + + + Determines whether the specified System.Object is equal to the current System.Object. + + The System.Object to compare with the current System.Object. + + True if the specified System.Object is equal to the current System.Object; otherwise, false. + + + + Returns the hash code of the current instance. + The hash code of the current instance. + + + + Returns a that represents the . + + + A that represents the . + + + + Gets the of the current instance. + The instance that represents the exact runtime + type of the current instance. + + + Releases all instances that are cached by the object. + + + Prevents any new registrations to be made to the container. + + + Releases all instances that are cached by the object. + True for a normal dispose operation; false to finalize the handle. + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + An assembly that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the transient lifestyle. + + The definition of the open generic type. + A list types to be registered. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the given . + + The definition of the open generic type. + A list types to be registered. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + assemblies = new[] { typeof(ILogger).Assembly }; + var types = container.GetTypesToRegister(assemblies) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ( + typeof(ILogger).Assembly, + typeof(FileLogger).Assembly) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Container.Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete types that are located in the supplied + and implement or inherit from the supplied and match the specified + . can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + The options. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + + + + Registers a collection of singleton elements of type . + + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The lifestyle that specifies how the returned instance will be cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when and + are not a generic type or when + is a partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of the type returned from + will be returned every time a + is requested and where the supplied + returns true. The instance is cached according to the supplied + . Both the and + will only be evaluated a finite number of times; + they unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + A factory that allows building Type objects that define the + implementation type to inject, based on the given contextual information. The delegate is allowed + to return (partially) open-generic types. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the registration can be applied for + the requested service type. This predicate can be used to build a fallback mechanism where + multiple registrations for the same service type are made. + Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is a + partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + is requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is open generic or + is not assignable to . + + Thrown when this container instance is locked and can not be altered. + + + + + Occurs when an instance of a type is requested that has not been registered explicitly, allowing + resolution of unregistered types before the container tries to create the type. + + + + The event is called by the container every time an + unregistered type is requested for the first time, allowing a developer to do unregistered type + resolution. By calling the Register method on the , a , or delegate can be registered allowing the container to retrieve @@ -911,7 +1508,7 @@ will result in an , while registrations that take a delegate (such as Register<TService>(Func<TService>)) will result in an . Singletons that are passed in using their - value (RegisterSingleton<TService>(TService)) + value (RegisterInstance<TService>(TService)) will result in an . Note that other ExpressionBuilding registrations might have changed the property and might have supplied an of a different type. The order in @@ -978,6 +1575,14 @@ + + Gets the object that allows access to methods related to registration and creation of collections. + The instance for this container. + + + This property is obsolete. Please use instead. + The instance for this container. + Registers that a new instance of will be returned every time it @@ -1210,6 +1815,25 @@ Thrown when is a null reference. + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton<TService>(Func<TService>). + + The interface or base type that can be used to retrieve the instance. + The instance to register. + + Thrown when this container instance is locked and can not be altered, or when the + has already been registered. + + Thrown when is a null reference. + + Registers a single instance that will be returned when an instance of type @@ -1227,6 +1851,27 @@ the has already been registered. + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton(Type, Func<object>). + + The base type or interface to register. + The instance to register. + Thrown when either or + are null references (Nothing in VB). + Thrown when is + no sub type from . + + Thrown when this container instance is locked and can not be altered, or when an + the has already been registered. + + Registers a single concrete instance that will be constructed using constructor injection and will @@ -1407,7 +2052,7 @@ (using constructor injection). Types that are newed up manually by supplying a delegate to the container (using the method) or registered as single instance - (using ) will not trigger initialization. + (using ) will not trigger initialization. When initialization of these instances is needed, this must be done manually, as can be seen in the following example: - Verifies and diagnoses this Container instance. This method will call all registered - delegates, iterate registered collections and throws an exception if there was an error. - - Thrown when the registration of instances was - invalid. - - - - Verifies the Container. This method will call all registered delegates, - iterate registered collections and throws an exception if there was an error. - - Specifies how the container should verify its configuration. - Thrown when the registration of instances was - invalid. - Thrown in case there are diagnostic errors and - the option is supplied. - Thrown when has an invalid value. - - - - Delegate that allows intercepting calls to and - . - - Contextual information about the to be created object. - A delegate that produces the actual instance according to its - lifestyle settings. - The instance that is returned from or an intercepted instance. - - - Configuration options for the Container. - - The following example shows the typical usage of the ContainerOptions class. - (); - - // Use of ContainerOptions class here. - container.Options.AllowOverridingRegistrations = true; - - // Replaces the previous registration of ITimeProvider - container.Register(); - ]]> - - - - - Gets the container to which this ContainerOptions instance belongs to. + Verifies and diagnoses this Container instance. This method will call all registered + delegates, iterate registered collections and throws an exception if there was an error. - The current Container. + Thrown when the registration of instances was + invalid. - + - Gets or sets a value indicating whether the container allows overriding registrations. The default - is false. + Verifies the Container. This method will call all registered delegates, + iterate registered collections and throws an exception if there was an error. - The value indicating whether the container allows overriding registrations. + Specifies how the container should verify its configuration. + Thrown when the registration of instances was + invalid. + Thrown in case there are diagnostic errors and + the option is supplied. + Thrown when has an invalid value. - + - Gets or sets a value indicating whether the container should suppress checking for lifestyle - mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default - is false. + Contains methods for registering and creating collections in the . - The value indicating whether the container should suppress checking for lifestyle - mismatches. - - - Gets or sets a value indicating whether. - This method is deprecated. Changing its value will have no effect. - The value indicating whether the container will return an empty collection. - + - Gets or sets a value indicating whether all the containers in the current AppDomain should throw - exceptions that contain fully qualified type name. The default is false which means - the type's namespace is omitted. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether exception message should emit full type names. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets the constructor resolution behavior. By default, the container only supports types - that have a single public constructor. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The constructor resolution behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. - - - - Gets or sets the dependency injection behavior. - The constructor injection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. - + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets the property selection behavior. The container's default behavior is to do no - property injection. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The property selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the lifestyle selection behavior. The container's default behavior is to make - registrations using the lifestyle. - The lifestyle selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the default lifestyle that the container will use when a registration is - made when no lifestyle is supplied. - The default lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the default scoped lifestyle that the container should use when a registration is - made using Lifestyle.Scoped. - The default scoped lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - - - Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. - By default, this value is true for the first few containers that are created in an AppDomain - and false for all other containers. You can set this value explicitly to false - to prevent the use of dynamic assemblies or you can set this value explicitly to true to - force more container instances to use dynamic assemblies. Note that creating an infinite number - of Container instances (for instance one per web request) - with this property set to true will result in a memory leak; dynamic assemblies take up - memory and will only be unloaded when the AppDomain is unloaded. - - A boolean indicating whether the container should use a dynamic assembly for compilation. - - - + - Registers an delegate that allows intercepting calls to - GetInstance and - . + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - If multiple registered instances must be applied, they will be - applied/wrapped in the order of registration, i.e. the first registered interceptor will call the - original instance producer delegate, the second interceptor will call the first interceptor, etc. - The last registered interceptor will become the outermost method in the chain and will be called - first. - - The delegate to register. - The predicate that will be used to check whether the given delegate must - be applied to a registration or not. The given predicate will be called once for each registration - in the container. - - Thrown when either the or are - null references. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - The following example shows the usage of the method: - - { - object instance = producer.Invoke(); - Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); - return instance; - }, - context => context.Producer.ServiceType.Name.EndsWith("Controller")); - - container.Register(); - container.Register(); - - // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. - container.GetInstance(); - ]]> - - - - Returns a string that represents the current object. - A string that represents the current object. - + - An instance of this type can be injected into constructors of decorator classes that are registered - using RegisterDecorator. This type contains - contextual information about the applied decoration and it allows users to examine the given instance - to make runtime decisions. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The implementation type. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the list of the types of decorators that have already been applied to this instance. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The applied decorators. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The current expression that is about to be decorated. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterDecorator - overload that takes this delegate. This type contains information about the decoration that is about - to be applied and it allows users to examine the given instance to see whether the decorator should - be applied or not. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - Please see the - RegisterDecorator - method for more information. - + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The implementation type. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the list of the types of decorators that have already been applied to this instance. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The applied decorators. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Appends a new to existing registrations made using one of the + Container.Collections.Register + overloads. - The current expression that is about to be decorated. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Thrown by the container in case of a diagnostic error. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads. + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + Thrown when the is ambiguous. + - + - Initializes a new instance of the class. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads with the given . + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + The lifestyle that specifies how the returned instance will be cached. + Thrown when the is ambiguous. + + Thrown when is a null reference. + - + - Initializes a new instance of the class with a specified error - message. + Appends a new registration to existing registrations made for a collection of + elements using one of the + Container.Collections.Register + overloads. - The message that describes the error. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Initializes a new instance of the class with a specified error - message. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. - The list of errors. + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. - + - Initializes a new instance of the class with a specified error - message and a reference to the inner exception that is the cause of this exception. + Registers a collection of singleton elements of type . - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual - Basic) if no inner exception is specified. - + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. - + - Initializes a new instance of the class with serialized data. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - The that holds the serialized object data about the exception - being thrown. - - - The that contains contextual information about the source or - destination. - - - The parameter is null. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). - - The class name is null or hresult is zero (0). + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - - Gets the list of instances. - A list of instances. - - + - Provides data for and interaction with the - ExpressionBuilding event of - the . An observer can change the - property to change the component that is - currently being built. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - + - Gets the type that is known to be returned by the - Expression (most often the implementation - type used in the Register call). This type will be a derivative of - RegisteredServiceType (or - or RegisteredServiceType itself). If the Expression is changed, the new expression - must also return an instance of type KnownImplementationType or a sub type. - This information must be described in the new Expression. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - A . - - - Gets the lifestyle for the component that is currently being built. - The . + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The collection of instances. + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - + - Provides data for and interaction with the - ExpressionBuilt event of - the . An observer can change the - property to change the component that is currently - being built. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. - - Initializes a new instance of the class. - Type of the registered service. - The registered expression. - - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. - - - Gets or sets the current lifestyle of the registration. - The original lifestyle of the registration. - - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The collection of instances. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Helper methods for the container. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Contains contextual information about the direct consumer for which the given dependency is injected - into. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - - Initializes a new instance of the class. - The constructor parameter for the created component. - - - Initializes a new instance of the class. - The implementation type of the consumer of the component that should be created. - The property for the created component. - - - Gets the service type of the consumer of the component that should be created. - The closed generic service type. - - - Gets the implementation type of the consumer of the component that should be created. - The implementation type. - - + - Gets the information about the consumer's target in which the dependency is injected. The target - can be either a property or a constructor parameter. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. - The for this context. - - - Returns a string that represents the . - A string. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Discovers the attributes of the code element (a property or parameter) where a dependency will be - injected into, and provides access to its meta data. + Delegate that allows intercepting calls to and + . + Contextual information about the to be created object. + A delegate that produces the actual instance according to its + lifestyle settings. + The instance that is returned from or an intercepted instance. - - Gets the constructor argument of the consumer of the component where the dependency will be - injected into. The property can return null. - The or null when the dependency is injected into a property. - - - Gets the property of the consumer of the component where the dependency will be injected into. - The property can return null. - The or null when the dependency is injected into a constructor - argument instead. - - - Gets the name of the target. - A string containing the name of the target. - - - Gets the type of the target. - A containing the type of the target. - - - Gets the member of the target. This is either the constructor of the parameter, or in - case the target is a property, the property itself will be returned. - A containing the type of the target. + + Configuration options for the Container. + + The following example shows the typical usage of the ContainerOptions class. + (); + + // Use of ContainerOptions class here. + container.Options.AllowOverridingRegistrations = true; + + // Replaces the previous registration of ITimeProvider + container.Register(); + ]]> + - + - Returns an array of all of the custom attributes defined on either the or - the , excluding named attributes, or an empty array if there are no custom - attributes. + Gets the container to which this ContainerOptions instance belongs to. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - There is more than one attribute of type attributeType - defined on this member. + The current Container. - + - Returns an array of custom attributes defined on either the or - the , identified by type, or an empty array if there are no custom - attributes of that type. + Gets or sets a value indicating whether the container allows overriding registrations. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - attributeType is null. + The value indicating whether the container allows overriding registrations. - + - Indicates whether one or more instance of attributeType is defined on this either the - or the . + Gets or sets a value indicating whether the container should suppress checking for lifestyle + mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - true if the attributeType is defined on this member; false otherwise. + The value indicating whether the container should suppress checking for lifestyle + mismatches. - + + Gets or sets a value indicating whether. + This method is deprecated. Changing its value will have no effect. + The value indicating whether the container will return an empty collection. + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets a value indicating whether all the containers in the current AppDomain should throw + exceptions that contain fully qualified type name. The default is false which means + the type's namespace is omitted. - The parameter to inspect. - A custom attribute that matches T, or null if no such attribute is found. + The value indicating whether exception message should emit full type names. - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. + Gets or sets the constructor resolution behavior. By default, the container only supports types + that have a single public constructor. - The parameter to inspect.The parameter to inspect. - True to inspect the ancestors of element; otherwise, false. - A custom attribute that matches T, or null if no such attribute is found. + The constructor resolution behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + + Gets or sets the dependency injection behavior. + The constructor injection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets the property selection behavior. The container's default behavior is to do no + property injection. - The type of attribute to search for. - A custom attribute that matches attributeType, or null if no such attribute is found. + The property selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. - - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A custom attribute matching attributeType, or null if no such attribute is found. + Gets or sets the lifestyle selection behavior. The container's default behavior is to make + registrations using the lifestyle. + The lifestyle selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - - The type of attribute to search for. - A collection of the custom attributes that are applied to element and that match T, or - an empty collection if no such attributes exist. + Gets or sets the default lifestyle that the container will use when a registration is + made when no lifestyle is supplied. + The default lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified - parameter, and optionally inspects the ancestors of that parameter. + Gets or sets the default scoped lifestyle that the container should use when a registration is + made using Lifestyle.Scoped. + The default scoped lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + + + Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. + By default, this value is true for the first few containers that are created in an AppDomain + and false for all other containers. You can set this value explicitly to false + to prevent the use of dynamic assemblies or you can set this value explicitly to true to + force more container instances to use dynamic assemblies. Note that creating an infinite number + of Container instances (for instance one per web request) + with this property set to true will result in a memory leak; dynamic assemblies take up + memory and will only be unloaded when the AppDomain is unloaded. - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A collection of the custom attributes that are applied to element and that match T, or an - empty collection if no such attributes exist. + A boolean indicating whether the container should use a dynamic assembly for compilation. + - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - GetCurrentRegistrations() or - GetRegistration(Type, bool). + Registers an delegate that allows intercepting calls to + GetInstance and + . - The Register method overloads create InstanceProducer instances internally, but - InstanceProducers can be created manually to implement special scenarios. An - InstanceProducer wraps instance. The Registration builds an - that describes the intend to create the instance according to a certain - lifestyle. The InstanceProducer on the other hand transforms this Expression to a - delegate and allows the actual instance to be created. A Registration itself can't create any - instance. The InsanceProducer allows intercepting created instances by hooking onto the - Container.ExpressionBuilt event. The - RegisterDecorator methods for - instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance - with a decorator. + If multiple registered instances must be applied, they will be + applied/wrapped in the order of registration, i.e. the first registered interceptor will call the + original instance producer delegate, the second interceptor will call the first interceptor, etc. + The last registered interceptor will become the outermost method in the chain and will be called + first. + The delegate to register. + The predicate that will be used to check whether the given delegate must + be applied to a registration or not. The given predicate will be called once for each registration + in the container. + + Thrown when either the or are + null references. + + + Thrown when this container instance is locked and can not be altered. + - The following example shows the creation of two different InstanceProducer instances that wrap - the same Registration instance. Since the Registration is created using the - Singleton lifestyle, both producers will return - the same instance. The InstanceProducer for the Interface1 however, will wrap that - instance in a (transient) Interface1Decorator. + The following example shows the usage of the method: (container); - - var producer1 = new InstanceProducer(typeof(Interface1), registration); - var producer2 = new InstanceProducer(typeof(Interface2), registration); - - container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); - - var instance1 = (Interface1)producer1.GetInstance(); - var instance2 = (Interface2)producer2.GetInstance(); - - Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); - Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + container.Options.RegisterResolveInterceptor((context, producer) => + { + object instance = producer.Invoke(); + Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); + return instance; + }, + context => context.Producer.ServiceType.Name.EndsWith("Controller")); + + container.Register(); + container.Register(); - Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. + container.GetInstance(); ]]> - - Initializes a new instance of the class. - The service type for which this instance is created. - The . - - - - Gets the for this registration. The returned lifestyle can differ from the - lifestyle that is used during the registration. This can happen for instance when the registration - is changed by an ExpressionBuilt - registration or gets decorated. - - The for this registration. - - - Gets the service type for which this producer produces instances. - A instance. - - - Gets the instance for this instance. - The . - - - - Creates a new based on the given - and where the will be used as-is; - no interception (using ExpressionBuilt) such as - decorators will be applied. - - The service type for which this instance is created. - The expression that describes the instance to be produced. - The instance for this registration. - A new that describes the expression. - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. - - - - Builds an expression that expresses the intent to get an instance by the current producer. A call - to this method locks the container. No new registrations can't be made after a call to this method. - - An Expression. + + Returns a string that represents the current object. + A string that represents the current object. - + - Gets the collection of relationships for this instance that the container knows about. - This includes relationships between the registered type and its dependencies and relationships - between applied decorators and their dependencies. Note that types that are not newed up by the - container and properties that are injected inside a custom delegate that is registered using the - RegisterInitializer - method are unknown to the container and are not returned from this method. - Also note that this method will return an empty collection when called before the - registered type is requested from the container (or before - Verify is called). + An instance of this type can be injected into constructors of decorator classes that are registered + using RegisterDecorator. This type contains + contextual information about the applied decoration and it allows users to examine the given instance + to make runtime decisions. - An array of instances. - + - Builds a string representation of the object graph with the current instance as root of the - graph. + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - A string representation of the object graph. - Thrown when this method is called before - or have been called. These calls can be - done directly and explicitly by the user on this instance, indirectly by calling - or on an instance that depends on this - instance, or by calling Verify on the container. - + The closed generic service type. - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - or . + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - The service type. - - - Initializes a new instance of the class. - The . - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + The implementation type. - + - Factory for the creation of a delegate that applies caching to the supplied - . + Gets the list of the types of decorators that have already been applied to this instance. - A factory for creating new instances. - A factory that returns cached instances. + The applied decorators. - + - Instances returned from the container can be cached. The contains several - overloads of the Register method that take a Lifestyle instance as argument to define - how returned instances should be cached. The core library contains two lifestyles out of the box. By - supplying Lifestyle.Transient, the registered instance is not - cached; a new instance is returned every time it is requested or injected. By supplying - Lifestyle.Singleton instances can be cached indefinitely; only - a single instance of the registered component will be returned by that container instance. Other - lifestyles are defined in integration and extension packages. The - CreateCustom method allows defining a custom lifestyle and - the CreateHybrid method - allows creating a lifestyle that mixes multiple other lifestyles. + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. + + The current expression that is about to be decorated. + + + + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterDecorator + overload that takes this delegate. This type contains information about the decoration that is about + to be applied and it allows users to examine the given instance to see whether the decorator should + be applied or not. - This type is abstract and can be overridden to implement a custom lifestyle. + Please see the + RegisterDecorator + method for more information. - + - The lifestyle instance that doesn't cache instances. A new instance of the specified - component is created every time the registered service is requested or injected. + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - - The following example registers the SomeServiceImpl implementation for the - ISomeService service type using the Transient lifestyle: - (Lifestyle.Transient); - ]]> - Note that Transient is the default lifestyle, the previous registration can be reduced to - the following: - (); - ]]> - + The closed generic service type. - + - - The lifestyle that caches components according to the lifetime of the container's configured - scoped lifestyle. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the active scope gets disposed. - + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Scoped lifestyle: - (Lifestyle.Scoped); - ]]> - + The implementation type. - + - - The lifestyle that caches components during the lifetime of the instance - and guarantees that only a single instance of that component is created for that instance. Since - general use is to create a single Container instance for the lifetime of the application / - AppDomain, this would mean that only a single instance of that component would exist during the - lifetime of the application. In a multi-threaded applications, implementations registered using - this lifestyle must be thread-safe. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the container gets disposed. - + Gets the list of the types of decorators that have already been applied to this instance. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Singleton lifestyle: - (Lifestyle.Singleton); - ]]> - - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. + The applied decorators. - - Gets the user friendly name of this lifestyle. - The user friendly name of this lifestyle. + + + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. + + The current expression that is about to be decorated. - + - Gets the length of the lifestyle. Implementers must implement this property. The diagnostic - services use this value to compare lifestyles with each other to determine lifestyle - misconfigurations. + Hooks into the building process and adds a decorator if needed. - The representing the length of this lifestyle. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diaal. - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - - + + Gets the lifestyles that causes the registrations to be conflicting. + instances. + + + Gets the implementation type that the affected registrations map to. + A . + + + Gets the registration that caused this warning. + /// An . + + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Gets the list of registrations that are in conflict with the . - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - + A list of instances. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Entry point for doing diagnostic analysis on instances. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The lifestyle to use when - returns true. - The lifestyle to use when - returns false. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - - Hybrid lifestyles can be nested: - + The following example shows the usage of the Analyzer class: lifestyle.GetCurrentScope(container) != null, - lifestyle, - Lifestyle.Transient); + DiagnosticResult[] results = Analyzer.Analyze(container); - var mixedScopeLifestyle = Lifestyle.CreateHybrid( - () => HttpContext.Current != null, - new WebRequestLifestyle(), - mixedLifetimeTransientLifestyle); + var typesWithAShortedLifetimeThanTheirDependencies = + from result in results + where result.DiagnosticType == DiagnosticType.LifestyleMismatch + let mismatch = (LifestyleMismatchDiagnosticResult)result + select mismatch.Relationship.ImplementationType; ]]> - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and - Transient. - - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Analyzes the supplied instance. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The scoped lifestyle to use when - returns true. - The scoped lifestyle to use when - returns false. - A new scoped hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - + The container instance to analyze. + A collection of sub types that describe the diagnostic + warnings and messages. - + - Creates a custom lifestyle using the supplied delegate. + Diagnostic result for a warning about a concrete type that was not registered explicitly and was not + resolved using unregistered type resolution, but was created by the container using the transient + lifestyle. + For more information, see: https://simpleinjector.org/diaut. - - The supplied will be called just once per registered - service. The supplied will be called by the framework - when the type is resolved for the first time, and the framework will supply the factory with a - Func<object> for creating new (transient) instances of that type (that might - have been intercepted and - initializers might have been applied). - It is the job of the to return a Func<object> - that applies the proper caching. The Func<object> that is returned by the - will be stored for that registration (every - registration will store its own Func<object> delegate) and this delegate will be - called every time the service is resolved (by calling - container.GetInstance<TService> or when that service is injected into another - type). - - The name of the lifestyle to create. The name is used to display the lifestyle - in the debugger. - A factory delegate that takes a Func<object> delegate - that will produce a transient instance and returns a delegate that returns cached instances. - A new . - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is an empty string. - - The following example shows the creation of a lifestyle that caches registered instances for 10 - minutes: - - { - TimeSpan timeout = TimeSpan.FromMinutes(10); - var syncRoot = new object(); - var expirationTime = DateTime.MinValue; - object instance = null; - - // If the application has multiple registrations using this lifestyle, each registration - // will get its own Func delegate (created here) and therefore get its own set - // of variables as defined above. - return () => - { - lock (syncRoot) - { - if (expirationTime < DateTime.UtcNow) - { - instance = instanceCreator(); - expirationTime = DateTime.UtcNow.Add(timeout); - } - - return instance; - } - }; - }); - - var container = new Container(); - - // We can reuse the created lifestyle for multiple registrations. - container.Register(customLifestyle); - container.Register(customLifestyle); - ]]> - - + + Gets a collection of instances that describe all + container-registered dependencies for the given component. + List of objects. + + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + A hierarchical group of . - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + - Creates a new instance for the given - that will create new instances of specified caching as - specified by this lifestyle. + Gets the base that describes the service types of its + . The value often be either (in case this is a + root group) or a partial generic type to allow hierarchical grouping of a large number of related + generic types. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). + The . - + + Gets the friendly name of the group. + The name. + + + Gets the description of the group. + The description. + + + Gets the diagnostic type of all grouped instances. + The . + + + Gets the parent or null (Nothing in VB) when this is the + root group. + The . + + + Gets the collection of child s. + A collection of elements. + + + Gets the collection of instances. + /// A collection of elements. + + - Creates a new instance for the given - that will create new instances instance using the supplied - with the caching as specified by this lifestyle. + Base class for types that hold information about a single diagnostic message or warning for a + particular type or part of the configuration. + + + + Gets the severity of this result. + The . + + + Gets the diagnostic type of this result. + The . + + + Gets the service type to which this warning is related. + A . + + + Gets the description of the diagnostic result. + A with the description. + + + Gets the documentation URL of the diagnostic result. + A with the URL. + + + Gets the hierarchical group to which this diagnostic result belongs. + The . + + + + Specifies the list of severity levels that diagnostic results can have. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + + Information messages and tips about the configuration. + + + Warning messages that are likely to cause problems in your application. + + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Specifies the list of diagnostic types that are currently supported by the diagnostic + . Note that new diagnostic types might be added in future versions. + For more information, please read the + Diagnosing your configuration using the Diagnostic + Services wiki documentation. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. + Diagnostic type that warns about + a concrete type that was not registered explicitly and was not resolved using unregistered type + resolution, but was created by the container using the transient lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The concrete type that will be registered. - The instance for which a - must be created. - A new or cached instance. - Thrown when is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when a + component depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when a + component depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. - This method might fail when run in a partial trust sandbox when - is an internal type. + Diagnostic type that warns when a component depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when multiple registrations map to the same component and + lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when a component is registered as transient, while implementing + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - The delegate that will be responsible for creating new instances. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - When overridden in a derived class, - creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Diagnostic type that warns when multiple registrations exist that map to the same component but + with different lifestyles, which will cause the component to be cached in different -possibly + incompatible- ways. + For more information, see: https://simpleinjector.org/diaal. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + - When overridden in a derived class, - creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic result for a warning about a component that is registered as transient, but implements + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterConditional - overload that takes this delegate. This type contains information about the open generic service that - is about to be created and it allows the user to examine the given instance to decide whether this - implementation should be created or not. + Diagnostic result for a warning about a + component that depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - - Please see the - Register - method for more information. - - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the object that describes the relationship between the component and its dependency. + A instance. - - Gets the closed generic implementation type that will be created by the container. - The implementation type. + + + Diagnostic result that warns about a + component that depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. + - - Gets a value indicating whether a previous Register registration has already - been applied for the given . - The indication whether the event has been handled. + + Gets the instance that describes the current relationship between the checked component + and the short-circuited dependency. + The . - + - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. + Gets the collection of registrations that have the component's current dependency as + implementation type, but have a lifestyle that is different than the current dependency. - The or null. + A collection of instances. - + - A Registration implements lifestyle based caching for a single service and allows building an - that describes the creation of the service. + Diagnostic result that warns about a component that depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - - implementations create a new Registration instance for each registered - service type. s returned from the - BuildExpression method can be - intercepted by any event registered with , have - initializers - applied, and the caching particular to its lifestyle have been applied. Interception using the - Container.ExpressionBuilt will not - be applied in the Registration, but will be applied in . - - See the documentation for an example. - - + + Gets the created type. + A . + + + Gets the list of registrations that are dependencies of the . + A collection of instances. + + - Initializes a new instance of the class. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The this that created this registration. - The instance for this registration. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Gets the type that this instance will create. - The type that this instance will create. + + Gets the lifestyle on which instances are torn. + A . - - Gets the this that created this registration. - The this that created this registration. + + Gets the implementation type that the affected registrations map to. + A . - - Gets the instance for this registration. - The instance for this registration. + + Gets the list of registrations that are affected by this warning. + A list of instances. - - Gets or sets a value indicating whether this registration object contains a user - supplied instanceCreator factory delegate. + + + Thrown by the container in case of a diagnostic error. + - + - Builds a new with the correct caching (according to the specifications of - its ) applied. + Initializes a new instance of the class. - An . - + - Gets the list of instances. Note that the list is only available - after calling . + Initializes a new instance of the class with a specified error + message. - A new array containing the instances. + The message that describes the error. - + - Initializes an already created instance and applies properties and initializers to that instance. + Initializes a new instance of the class with a specified error + message. - - This method is especially useful in integration scenarios where the given platform is in control - of creating certain types. By passing the instance created by the platform to this method, the - container is still able to apply any properties (as defined using a custom - ) and by applying any initializers. - - The instance to initialize. - Thrown when is a null reference - (Nothing in VB). - Thrown when the supplied is not - of type . + The list of errors. - + - Suppressing the supplied for the given registration. + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. - The . - The justification of why the warning must be suppressed. - Thrown when is a null - reference. - Thrown when either is an - empty string or when is not a valid value of . + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual + Basic) if no inner exception is specified. + + + + + Initializes a new instance of the class with serialized data. + + + The that holds the serialized object data about the exception + being thrown. + + + The that contains contextual information about the source or + destination. + + + The parameter is null. + + + The class name is null or hresult is zero (0). - + + Gets the list of instances. + A list of instances. + + - Builds a delegate for the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers - that are applicable to the given (if any). + Provides data for and interaction with the + ExpressionBuilding event of + the . An observer can change the + property to change the component that is + currently being built. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - A delegate. - Thrown when one of the arguments is a null reference. - + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + - Builds a delegate for the creation of . - The returned might be intercepted by a - Container.ExpressionBuilding event, - and the creation of the will have been wrapped with a - delegate that executes the registered - initializers - that are applicable to the given (if any). + Gets the type that is known to be returned by the + Expression (most often the implementation + type used in the Register call). This type will be a derivative of + RegisteredServiceType (or + or RegisteredServiceType itself). If the Expression is changed, the new expression + must also return an instance of type KnownImplementationType or a sub type. + This information must be described in the new Expression. - A delegate. - Thrown when one of the arguments is a null reference. + A . - + + Gets the lifestyle for the component that is currently being built. + The . + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + - Builds an that describes the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers that are - applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - An . - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds an that describes the creation of . - The returned might be intercepted - by a Container.ExpressionBuilding - event, and the creation of the will have been wrapped with - a delegate that executes the registered - initializers that are applicable - to the InstanceProducer's ServiceType (if any). + Provides data for and interaction with the + ExpressionBuilt event of + the . An observer can change the + property to change the component that is currently + being built. - An . - Thrown when one of the arguments is a null reference. - - Implements a cache for implementations. - - is thread-safe can be used over multiple threads concurrently, but note that the - cached instances might not be thread-safe. - + + Initializes a new instance of the class. + Type of the registered service. + The registered expression. - - Initializes a new instance of the class. + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. - - Initializes a new instance of the class. - The container instance that the scope belongs to. + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. - - Gets the container instance that this scope belongs to. - The instance. + + Gets or sets the current lifestyle of the registration. + The original lifestyle of the registration. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The collection of instances. - + - Adds the to the list of items that will get disposed when the - scope ends. + Helper methods for the container. + + + + + Contains contextual information about the direct consumer for which the given dependency is injected + into. + + + + Initializes a new instance of the class. + The constructor parameter for the created component. + + + Initializes a new instance of the class. + The implementation type of the consumer of the component that should be created. + The property for the created component. + + + Gets the service type of the consumer of the component that should be created. + The closed generic service type. + + + Gets the implementation type of the consumer of the component that should be created. + The implementation type. + + + + Gets the information about the consumer's target in which the dependency is injected. The target + can be either a property or a constructor parameter. - - Instances that are registered for disposal, will be disposed in opposite order of registration and - they are guaranteed to be disposed when is called (even when - exceptions are thrown). This mimics the behavior of the C# and VB using statements, - where the method is called inside the finally block. - - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The for this context. - + + Returns a string that represents the . + A string. + + - Retrieves an item from the scope stored by the given or null when no - item is stored by that key. + Discovers the attributes of the code element (a property or parameter) where a dependency will be + injected into, and provides access to its meta data. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Stores an item by the given in the scope. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The key of the item to insert or override. - The actual item. May be null. - Thrown when paramref name="key"/> is a null reference - (Nothing in VB). + + Gets the constructor argument of the consumer of the component where the dependency will be + injected into. The property can return null. + The or null when the dependency is injected into a property. - - Releases all instances that are cached by the object. + + Gets the property of the consumer of the component where the dependency will be injected into. + The property can return null. + The or null when the dependency is injected into a constructor + argument instead. - + + Gets the name of the target. + A string containing the name of the target. + + + Gets the type of the target. + A containing the type of the target. + + + Gets the member of the target. This is either the constructor of the parameter, or in + case the target is a property, the property itself will be returned. + A containing the type of the target. + + - Releases all instances that are cached by the object. + Returns an array of all of the custom attributes defined on either the or + the , excluding named attributes, or an empty array if there are no custom + attributes. - False when only unmanaged resources should be released. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + There is more than one attribute of type attributeType + defined on this member. - + - Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly - or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly - defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal - or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create - more than one instance of such registered type. + Returns an array of custom attributes defined on either the or + the , identified by type, or an empty array if there are no custom + attributes of that type. + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + Thrown when attributeType is null. - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Signals the lifestyle whether instances should be - disposed or not. - Thrown when is null (Nothing in VB) - or an empty string. - - - Gets the length of the lifestyle. - The representing the length of this lifestyle. + + + Indicates whether one or more instance of attributeType is defined on this either the + or the . + + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + true if the attributeType is defined on this member; false otherwise. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The instance. - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect. + A custom attribute that matches T, or null if no such attribute is found. - + - Adds the to the list of items that will get disposed when the - scope ends. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The instance. - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect.The parameter to inspect. + True to inspect the ancestors of element; otherwise, false. + A custom attribute that matches T, or null if no such attribute is found. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The type of attribute to search for. + A custom attribute that matches attributeType, or null if no such attribute is found. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The container for which the delegate gets created. - A delegate. This method should never return null. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A custom attribute matching attributeType, or null if no such attribute is found. - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + A collection of the custom attributes that are applied to element and that match T, or + an empty collection if no such attributes exist. - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified + parameter, and optionally inspects the ancestors of that parameter. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A collection of the custom attributes that are applied to element and that match T, or an + empty collection if no such attributes exist. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + GetCurrentRegistrations() or + GetRegistration(Type, bool). - By default, this method calls the method and invokes the - returned delegate. This method can be overridden to provide an optimized way for getting the - current scope. + The Register method overloads create InstanceProducer instances internally, but + InstanceProducers can be created manually to implement special scenarios. An + InstanceProducer wraps instance. The Registration builds an + that describes the intend to create the instance according to a certain + lifestyle. The InstanceProducer on the other hand transforms this Expression to a + delegate and allows the actual instance to be created. A Registration itself can't create any + instance. The InsanceProducer allows intercepting created instances by hooking onto the + Container.ExpressionBuilt event. The + RegisterDecorator methods for + instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance + with a decorator. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + + The following example shows the creation of two different InstanceProducer instances that wrap + the same Registration instance. Since the Registration is created using the + Singleton lifestyle, both producers will return + the same instance. The InstanceProducer for the Interface1 however, will wrap that + instance in a (transient) Interface1Decorator. + (container); + + var producer1 = new InstanceProducer(typeof(Interface1), registration); + var producer2 = new InstanceProducer(typeof(Interface2), registration); + + container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); + + var instance1 = (Interface1)producer1.GetInstance(); + var instance2 = (Interface2)producer2.GetInstance(); + + Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); + Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + + Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + ]]> + - - Internal helper for string resources. + + Initializes a new instance of the class. + The service type for which this instance is created. + The . - + - Contains contextual information for creating an implementation type. + Gets the for this registration. The returned lifestyle can differ from the + lifestyle that is used during the registration. This can happen for instance when the registration + is changed by an ExpressionBuilt + registration or gets decorated. - - Please see the - Register - method for more information. - + The for this registration. - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the service type for which this producer produces instances. + A instance. - - - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. - - The or null. + + Gets the instance for this instance. + The . - + - Returns a list of base types and interfaces of implementationType that either - equal to serviceType or are closed or partially closed version of serviceType (in case - serviceType itself is generic). - So: - -in case serviceType is non generic, only serviceType will be returned. - -If implementationType is open generic, serviceType will be returned (or a partially closed - version of serviceType is returned). - -If serviceType is generic and implementationType is not, a closed version of serviceType will - be returned. - -If implementationType implements multiple (partially) closed versions of serviceType, all those - (partially) closed versions will be returned. + Creates a new based on the given + and where the will be used as-is; + no interception (using ExpressionBuilt) such as + decorators will be applied. - The (open generic) service type to match. - The implementationType to search. - A list of types. + The service type for which this instance is created. + The expression that describes the instance to be produced. + The instance for this registration. + A new that describes the expression. - - Useful extensions on . + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed - in a C#-like syntax. Ideal for reporting type names in exception messages. + Builds an expression that expresses the intent to get an instance by the current producer. A call + to this method locks the container. No new registrations can't be made after a call to this method. - The type to convert. - A human-readable string representation of that type. - Thrown when the supplied argument is a null reference. + An Expression. - + - Returns true is there is a closed version of the supplied - that is assignable from the current . This method returns true when either - itself, one of its base classes or one of its implemented interfaces is a - closed version of ; otherwise false. + Gets the collection of relationships for this instance that the container knows about. + This includes relationships between the registered type and its dependencies and relationships + between applied decorators and their dependencies. Note that types that are not newed up by the + container and properties that are injected inside a custom delegate that is registered using the + RegisterInitializer + method are unknown to the container and are not returned from this method. + Also note that this method will return an empty collection when called before the + registered type is requested from the container (or before + Verify is called). - The type to check. - The generic type definition to match. - True when type is assignable; otherwise false. + An array of instances. - + - Gets the single closed version of that the current - is assignable from. In case none or multiple matching closed types are - found, and exception is thrown. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Builds a string representation of the object graph with the current instance as root of the + graph. - The type to check. - The generic type definition to match. - The matching closed type. - Thrown when one of the arguments is a null reference. - Thrown when is not - a generic type or when none of the base classes or implemented interfaces of - Thrown when multiple matching closed generic types - are found. + A string representation of the object graph. + Thrown when this method is called before + or have been called. These calls can be + done directly and explicitly by the user on this instance, indirectly by calling + or on an instance that depends on this + instance, or by calling Verify on the container. + - + - Gets the list of closed versions of that the current - is assignable from. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + or . - The type to check. - The generic type definition to match. - A list of matching closed generic types. + The service type. - - - Defines options to control the types returned from the - GetTypesToRegister - method. For a type to be returned, it should match all the conditions described by the class's - properties. In other words, in case the searched assembly contains a generic type, that is both a - decorator and a composite, it will only be returned by GetTypesToRegister in case both - , and - are set to true. - + + Initializes a new instance of the class. + The . - - Initializes a new instance of the class. + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Gets or sets a value indicating whether decorator types should be included in the result. The default - value of this property is false. A type is considered a decorator if the type's constructor - contains a parameter of the type that exactly matches the serviceType argument, - supplied to the - GetTypesToRegister - method, or when there is a argument where T matches the - serviceType argument. + A map containing a generic argument (such as T) and the concrete type (such as Int32) that it + represents. - A boolean. - + + Implements equality. Needed for doing LINQ distinct operations. + The other to compare to. + True or false. + + + Overrides the default hash code. Needed for doing LINQ distinct operations. + An 32 bit integer. + + - Gets or sets a value indicating whether generic type definitions (types that have - Type.IsGenericTypeDefinition - set to true) - should be included in the result. The default value for this property is false. + Container controlled collections can be supplied with both Type objects or direct Registration + instances. - A boolean. - + + Will never be null. Can be open-generic. + + + Can be null. + + - Gets or sets a value indicating whether composite types should be included in the result. The default - value of this property is true. A type is considered a composite if the type's constructor - contains a parameter of IEnumerable<T>, ICollection<T>, - IList<T>, IReadOnlyCollection<T>, - IReadOnlyList<T> or T[] (array of T), where T - exactly matches the serviceType argument, supplied to the - GetTypesToRegister - method. + Gets a message that describes the current exception. - A boolean. + The error message that explains the reason for the exception, or an empty string(""). - + - Provides data for and interaction with the - ResolveUnregisteredType event of - the . An observer can check the - to see whether the unregistered type can be handled. The - method can be called to register a delegate - that allows creation of instances of the unregistered for this and future requests. + Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done + by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a + single InstanceProducer and therefore a single service type. - - Gets the unregistered service type that is currently requested. - The unregistered service type that is currently requested. - - + - Gets a value indicating whether the event represented by this instance has been handled. - This property will return true when has been called on - this instance. + Allows retrieving the concrete types of the generic type arguments of that must be used to create a + closed generic implementation of a given open generic implementation, based on on the concrete + arguments of the given closed base type. - The indication whether the event has been handled. - + - Registers a delegate that allows creation of instances of the type - expressed by the for this and future requests. The delegate - will be caches and future requests will directly call that delegate. + Helper class for building closed generic type for a given open generic type and a closed generic base. - The delegate that allows creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + Result of the GenericTypeBuilder. + + - Registers an that describes the creation of instances of the type - expressed by the for this and future requests. The delegate - will be cached and future requests will directly use that expression or the compiled delegate. + A open generic type with the concrete arguments that can be used to create a closed generic type. - - NOTE: If possible, use the Register(Registration) overload, - since this allows the analysis services to determine any configuration errors on the lifestyle of - the registration. - - The expression that describes the creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + This interface is not meant for public use. + + + Please do not use. + Do not use. + + + PLease do not use. + Do not use. + + - Registers a that describes the creation of instances of the type - expressed by the for this and future requests. The - registration will be cached and future requests will directly call unon that registration, the - expression that it generates or the delegate that gets compiled from that expression. + Allows validating an ArgumentMapping. - The registration that describes the creation of instances according to - the registration's lifestyle of the type expressed by the . - Thrown when the is a - null reference. - Thrown when the is a - not exactly of type where T equals the . - - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + - This enumeration has defines in which way the container should run the verification process. + Factory for the creation of a delegate that applies caching to the supplied + . + A factory for creating new instances. + A factory that returns cached instances. - + - Specifies that the container performs verification only, which means that it will test whether - all registrations can be constructed by iterating the registrations and letting the container - create at least one instance of each registration. An - will be thrown in case the configuration is invalid. + Instances returned from the container can be cached. The contains several + overloads of the Register method that take a Lifestyle instance as argument to define + how returned instances should be cached. The core library contains two lifestyles out of the box. By + supplying Lifestyle.Transient, the registered instance is not + cached; a new instance is returned every time it is requested or injected. By supplying + Lifestyle.Singleton instances can be cached indefinitely; only + a single instance of the registered component will be returned by that container instance. Other + lifestyles are defined in integration and extension packages. The + CreateCustom method allows defining a custom lifestyle and + the CreateHybrid method + allows creating a lifestyle that mixes multiple other lifestyles. + + This type is abstract and can be overridden to implement a custom lifestyle. + - + - Specifies that the container will run diagnostic analysis after the verification succeeded. The - container will diagnose the configuration with a subset of the available diagnostic warnings, that - are most likely an indication of a configuration mistake. A complete set of diagnostic warnings - can be retrieved by calling - Analyzer.Analyze or by viewing the - container in the Visual Studio debugger, after the verification has succeeded. + The lifestyle instance that doesn't cache instances. A new instance of the specified + component is created every time the registered service is requested or injected. + + The following example registers the SomeServiceImpl implementation for the + ISomeService service type using the Transient lifestyle: + (Lifestyle.Transient); + ]]> + Note that Transient is the default lifestyle, the previous registration can be reduced to + the following: + (); + ]]> + - + - Extension methods for enable advanced scenarios. + + The lifestyle that caches components according to the lifetime of the container's configured + scoped lifestyle. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the active scope gets disposed. + + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Scoped lifestyle: + (Lifestyle.Scoped); + ]]> + - + - Determines whether the specified container is locked making any new registrations. The container - is automatically locked when GetInstance is called for the - first time. + + The lifestyle that caches components during the lifetime of the instance + and guarantees that only a single instance of that component is created for that instance. Since + general use is to create a single Container instance for the lifetime of the application / + AppDomain, this would mean that only a single instance of that component would exist during the + lifetime of the application. In a multi-threaded applications, implementations registered using + this lifestyle must be thread-safe. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the container gets disposed. + - The container. - - true if the specified container is locked; otherwise, false. - - Thrown when is null. + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Singleton lifestyle: + (Lifestyle.Singleton); + ]]> + - - Determines whether the specified container is currently verifying its configuration. - The container. - true if the specified container is verifying; otherwise, false. - Thrown when is null. + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. - + + Gets the user friendly name of this lifestyle. + The user friendly name of this lifestyle. + + - Retrieves an item from the container stored by the given or null when no - item is stored by that key. + Gets the length of the lifestyle. Implementers must implement this property. The diagnostic + services use this value to compare lifestyles with each other to determine lifestyle + misconfigurations. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The container. - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). + The representing the length of this lifestyle. - + - Stores an item by the given in the container. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The container. - The key of the item to insert or override. - The actual item. May be null. - Thrown when either or - is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Adds an item by the given in the container by using the specified function, - if the key does not already exist. This operation is atomic. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - The Type of the item to create. - The container. - The key of the item to insert or override. - The function used to generate a value for the given key. The supplied - value of will be supplied to the function when called. - The stored item or the item from the . - Thrown when either , - or is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The registration to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The lifestyle to use when + returns true. + The lifestyle to use when + returns false. + A new hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, is open generic, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + lifestyle.GetCurrentScope(container) != null, + lifestyle, + Lifestyle.Transient); + + var mixedScopeLifestyle = Lifestyle.CreateHybrid( + () => HttpContext.Current != null, + new WebRequestLifestyle(), + mixedLifetimeTransientLifestyle); + ]]> + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The implementation type to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The scoped lifestyle to use when + returns true. + The scoped lifestyle to use when + returns false. + A new scoped hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). - - - Deprecation extensions. - - - - This interface method has been removed. Please call GetInstanceProducerFor instead. - - The behavior. - The consumer. - Throws an exception. + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + - + - This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. + Creates a custom lifestyle using the supplied delegate. - The behavior. - Type of the abstraction that is requested. - The property to check. - True when the property should be injected. + + The supplied will be called just once per registered + service. The supplied will be called by the framework + when the type is resolved for the first time, and the framework will supply the factory with a + Func<object> for creating new (transient) instances of that type (that might + have been intercepted and + initializers might have been applied). + It is the job of the to return a Func<object> + that applies the proper caching. The Func<object> that is returned by the + will be stored for that registration (every + registration will store its own Func<object> delegate) and this delegate will be + called every time the service is resolved (by calling + container.GetInstance<TService> or when that service is injected into another + type). + + The name of the lifestyle to create. The name is used to display the lifestyle + in the debugger. + A factory delegate that takes a Func<object> delegate + that will produce a transient instance and returns a delegate that returns cached instances. + A new . + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is an empty string. + + The following example shows the creation of a lifestyle that caches registered instances for 10 + minutes: + + { + TimeSpan timeout = TimeSpan.FromMinutes(10); + var syncRoot = new object(); + var expirationTime = DateTime.MinValue; + object instance = null; + + // If the application has multiple registrations using this lifestyle, each registration + // will get its own Func delegate (created here) and therefore get its own set + // of variables as defined above. + return () => + { + lock (syncRoot) + { + if (expirationTime < DateTime.UtcNow) + { + instance = instanceCreator(); + expirationTime = DateTime.UtcNow.Add(timeout); + } + + return instance; + } + }; + }); + + var container = new Container(); + + // We can reuse the created lifestyle for multiple registrations. + container.Register(customLifestyle); + container.Register(customLifestyle); + ]]> + - + - Defines the container's behavior for finding a suitable constructor for the creation of a type. - Set the ConstructorResolutionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Gets the given 's constructor that can be used by the - container to create that instance. + Creates a new instance for the given + that will create new instances of specified caching as + specified by this lifestyle. - Type of the implementation to find a suitable constructor for. - - The . This method never returns null. - - Thrown when no suitable constructor could be found. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Defines the container's behavior for building an expression tree for an dependency to inject, based on - the information of the consuming type the dependency is injected into. - Set the ConstructorInjectionBehavior - property of the container's property to change the default behavior - of the container. - - - - Verifies the specified . - Contextual information about the consumer where the built dependency is - injected into. - - Thrown when the type of the target supplied with - the supplied cannot be used for auto wiring. - Thrown when the supplied argument is a null reference. + Creates a new instance for the given + that will create new instances instance using the supplied + with the caching as specified by this lifestyle. + + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the for the - Target of the supplied . + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. - Contextual information about the consumer where the built dependency is - injected into. - The indication whether the method should return null or throw - an exception when the type is not registered. - An that describes the intend of creating that - Target. This method never returns null. - Thrown when the argument is a null reference. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle - is explicitly supplied. - Set the LifestyleSelectionBehavior - property of the container's property to change the default behavior - of the container. By default, when no lifestyle is explicitly supplied, the - Transient lifestyle is used. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + The concrete type that will be registered. + The instance for which a + must be created. + A new or cached instance. + Thrown when is a null + reference (Nothing in VB). - - Selects the lifestyle based on the supplied type information. - Type of the implementation to that is registered. - The suited for the given type. - Thrown when either one of the arguments is a null reference. - - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterResolveInterceptor - method that takes this delegate. This type contains contextual information about a resolved type and it - allows the user to examine the given instance to decide whether the - should be applied or not. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - The or null (Nothing in VB) when the instance producer is - unknown. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + This method might fail when run in a partial trust sandbox when + is an internal type. - /// The . + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterInitializer - overload that takes this delegate. This type contains contextual information about the creation and it - allows the user to examine the given instance to decide whether the instance should be initialized or - not. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets a null reference. This property has been deprecated. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - The null (Nothing in VB). + The interface or base type that can be used to retrieve the instances. + The delegate that will be responsible for creating new instances. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - /// The . + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Contains data that can be used to initialize a created instance. This data includes the actual - created and the information about the created instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - - Initializes a new instance of the struct. - The that contains contextual information - about the created instance. - The created instance. - - - Gets the with contextual information about the - created instance. - The . + + + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. An execution context scope flows with the logical execution context. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + + The following example shows the usage of the ExecutionContextScopeLifestyle class: + (Lifestyle.Scoped); + + using (AsyncScopedLifestyle.BeginScope(container)) + { + var instance1 = container.GetInstance(); + // ... + } + ]]> + - - Gets the created instance. - The created instance. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . + - - Returns the hash code for this instance. - A 32-bit signed integer that is the hash code for this instance. + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + - - Indicates whether this instance and a specified object are equal. - Another object to compare to. - True if the current object is equal to the other parameter; otherwise, false. + + + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - Indicates whether the current object is equal to another object of the same type. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. - An object to compare with this object. - True if the current object is equal to the other parameter; otherwise, false. + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Indicates whether the values of two specified objects are equal. + This lifestyle can be used to implement ambient context-less scoping in Simple Injector. This lifestyle + can be set as DefaultScopedLifestyle and later used via Lifestyle.Scoped to register scoped instances, + while instances are resolved via Scope.GetInstance. - The first object to compare. - The second object to compare. - True if a and b are equal; otherwise, false. - + - Indicates whether the values of two specified objects are - not equal. + Forwards CreateRegistration calls to the lifestyle that is returned from the registered + container.Options.LifestyleSelectionBehavior. - The first object to compare. - The second object to compare. - True if a and b are not equal; otherwise, false. - + - Defines the container's behavior for selecting properties to inject during the creation of a type. - Set the PropertySelectionBehavior - property of the container's property to change the default behavior - of the container. By default, no properties will be injected by the container. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + The following example shows the usage of the ThreadScopedLifestyle class: + (Lifestyle.Scoped); + + using (container.BeginLifetimeScope()) + { + var instance1 = container.GetInstance(); + + // This call will return the same instance. + var instance2 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); + + // Create a nested scope. + using (container.BeginLifetimeScope()) + { + // A nested scope gets its own instance. + var instance3 = container.GetInstance(); + + Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); + + // This call will return the same instance. + var instance4 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); + } + } + ]]> + - - - Determines whether a property should be injected by the container upon creation of its type. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . - - The type being created for which the property should be injected. Note that this might a - different type than the type on which the property is declared (which might be a base class). - The property to check. - True when the property should be injected. - + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + + + - A known relationship defines a relationship between two types. The Diagnostics Debug View uses this - information to spot possible misconfigurations. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method never returns null. - - Initializes a new instance of the class. - The implementation type of the parent type. - The lifestyle of the parent type. - The type that the parent depends on (it is injected into the parent). + + + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the implementation type of the parent type of the relationship. - The implementation type of the parent type of the relationship. + + + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterConditional + overload that takes this delegate. This type contains information about the open generic service that + is about to be created and it allows the user to examine the given instance to decide whether this + implementation should be created or not. + + + Please see the + Register + method for more information. + - - Gets the lifestyle of the parent type of the relationship. - The lifestyle of the parent type of the relationship. + + Gets the closed generic service type that is to be created. + The closed generic service type. - - Gets the type that the parent depends on (it is injected into the parent). - The type that the parent depends on. + + Gets the closed generic implementation type that will be created by the container. + The implementation type. - - Serves as a hash function for a particular type. - A hash code for the current . + + Gets a value indicating whether a previous Register registration has already + been applied for the given . + The indication whether the event has been handled. - + - Determines whether the specified is equal to the current - . + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. - The object to compare with the current object. - True if the specified is equal to the current - ; otherwise, false. + The or null. - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + A Registration implements lifestyle based caching for a single service and allows building an + that describes the creation of the service. + + implementations create a new Registration instance for each registered + service type. s returned from the + BuildExpression method can be + intercepted by any event registered with , have + initializers + applied, and the caching particular to its lifestyle have been applied. Interception using the + Container.ExpressionBuilt will not + be applied in the Registration, but will be applied in . + + See the documentation for an example. + - - Initializes a new instance of the struct. - The scope factory. - The container. - - - Gets the lazily initialized Scope of the current LazyScope instance. - The current Scope or null. - - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + Initializes a new instance of the class. - Implementation type. + The this that created this registration. + The instance for this registration. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - - Initializes a new instance of the - struct. - The registration. + + Gets the type that this instance will create. + The type that this instance will create. - - Gets the lazily initialized instance for the of the current LazyScopedRegistration. - The scope that is used to retrieve the instance. - The cached instance. + + Gets the this that created this registration. + The this that created this registration. - + + Gets the instance for this registration. + The instance for this registration. + + + Gets or sets a value indicating whether this registration object contains a user + supplied instanceCreator factory delegate. + + - Hooks into the building process and adds a decorator if needed. + Builds a new with the correct caching (according to the specifications of + its ) applied. + An . - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diaal. + Gets the list of instances. Note that the list is only available + after calling . + A new array containing the instances. - - Gets the lifestyles that causes the registrations to be conflicting. - instances. - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the registration that caused this warning. - /// An . - - + - Gets the list of registrations that are in conflict with the . + Initializes an already created instance and applies properties and initializers to that instance. - A list of instances. + + This method is especially useful in integration scenarios where the given platform is in control + of creating certain types. By passing the instance created by the platform to this method, the + container is still able to apply any properties (as defined using a custom + ) and by applying any initializers. + + The instance to initialize. + Thrown when is a null reference + (Nothing in VB). + Thrown when the supplied is not + of type . - + - Entry point for doing diagnostic analysis on instances. + Suppressing the supplied for the given registration. - - The following example shows the usage of the Analyzer class: - - + The . + The justification of why the warning must be suppressed. + Thrown when is a null + reference. + Thrown when either is an + empty string or when is not a valid value of . + - + - Analyzes the supplied instance. + Builds a delegate for the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers + that are applicable to the given (if any). - The container instance to analyze. - A collection of sub types that describe the diagnostic - warnings and messages. + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + A delegate. + Thrown when one of the arguments is a null reference. - + - Diagnostic result for a warning about a concrete type that was not registered explicitly and was not - resolved using unregistered type resolution, but was created by the container using the transient - lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Builds a delegate for the creation of . + The returned might be intercepted by a + Container.ExpressionBuilding event, + and the creation of the will have been wrapped with a + delegate that executes the registered + initializers + that are applicable to the given (if any). + A delegate. + Thrown when one of the arguments is a null reference. - - Gets a collection of instances that describe all - container-registered dependencies for the given component. - List of objects. - - + - A hierarchical group of . + Builds an that describes the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers that are + applicable to the given (if any). + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + An . + Thrown when one of the arguments is a null reference. - + - Gets the base that describes the service types of its - . The value often be either (in case this is a - root group) or a partial generic type to allow hierarchical grouping of a large number of related - generic types. + Builds an that describes the creation of . + The returned might be intercepted + by a Container.ExpressionBuilding + event, and the creation of the will have been wrapped with + a delegate that executes the registered + initializers that are applicable + to the InstanceProducer's ServiceType (if any). - The . + An . + Thrown when one of the arguments is a null reference. - - Gets the friendly name of the group. - The name. + + Implements a cache for implementations. + + is thread-safe can be used over multiple threads concurrently, but note that the + cached instances might not be thread-safe. + - - Gets the description of the group. - The description. + + Initializes a new instance of the class. - - Gets the diagnostic type of all grouped instances. - The . + + Initializes a new instance of the class. + The container instance that the scope belongs to. - - Gets the parent or null (Nothing in VB) when this is the - root group. - The . + + Gets the container instance that this scope belongs to. + The instance. - - Gets the collection of child s. - A collection of elements. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - - Gets the collection of instances. - /// A collection of elements. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - + - Base class for types that hold information about a single diagnostic message or warning for a - particular type or part of the configuration. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Gets the severity of this result. - The . - - - Gets the diagnostic type of this result. - The . - - - Gets the service type to which this warning is related. - A . - - - Gets the description of the diagnostic result. - A with the description. + + + Adds the to the list of items that will get disposed when the + scope ends. + + + Instances that are registered for disposal, will be disposed in opposite order of registration and + they are guaranteed to be disposed when is called (even when + exceptions are thrown). This mimics the behavior of the C# and VB using statements, + where the method is called inside the finally block. + + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Gets the documentation URL of the diagnostic result. - A with the URL. + + + Retrieves an item from the scope stored by the given or null when no + item is stored by that key. + + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . + + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - Gets the hierarchical group to which this diagnostic result belongs. - The . + + Stores an item by the given in the scope. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. + + The key of the item to insert or override. + The actual item. May be null. + Thrown when paramref name="key"/> is a null reference + (Nothing in VB). - + - Specifies the list of severity levels that diagnostic results can have. + Returns the list of instances that will be disposed of when this + instance is being disposed. The list contains scoped instances that are cached in this instance, + and instances explicitly registered for disposal using . The instances are returned + in order of creation/registration. When Scope.Dispose is called, the scope will ensure + is called on each instance in this list. The instance will be disposed in opposite + order as they appear in the list. + The list of instances that will be disposed of when this + instance is being disposed. - - Information messages and tips about the configuration. - - - Warning messages that are likely to cause problems in your application. + + Releases all instances that are cached by the object. - + - Specifies the list of diagnostic types that are currently supported by the diagnostic - . Note that new diagnostic types might be added in future versions. - For more information, please read the - Diagnosing your configuration using the Diagnostic - Services wiki documentation. + Releases all instances that are cached by the object. + False when only unmanaged resources should be released. - + - Diagnostic type that warns about - a concrete type that was not registered explicitly and was not resolved using unregistered type - resolution, but was created by the container using the transient lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly + or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly + defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal + or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create + more than one instance of such registered type. - + - Diagnostic type that warns when a - component depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Gets the scoped lifestyle that allows Scoped registrations to be resolved direclty from the + by calling . This allows multiple + scopes to be active and overlap within the same logical context, such as a single thread, or an + asynchronous context. - - - Diagnostic type that warns when a - component depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. - + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. + + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Signals the lifestyle whether instances should be + disposed or not. + Thrown when is null (Nothing in VB) + or an empty string. + + + Gets the length of the lifestyle. + The representing the length of this lifestyle. - + - Diagnostic type that warns when a component depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The instance. + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when multiple registrations map to the same component and - lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Adds the to the list of items that will get disposed when the + scope ends. + The instance. + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when a component is registered as transient, while implementing - . - For more information, see: https://simpleinjector.org/diadt. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - Diagnostic type that warns when multiple registrations exist that map to the same component but - with different lifestyles, which will cause the component to be cached in different -possibly - incompatible- ways. - For more information, see: https://simpleinjector.org/diaal. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method should never return null. - + - Diagnostic result for a warning about a component that is registered as transient, but implements - . - For more information, see: https://simpleinjector.org/diadt. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result for a warning about a - component that depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result that warns about a - component that depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + By default, this method calls the method and invokes the + returned delegate. This method can be overridden to provide an optimized way for getting the + current scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the instance that describes the current relationship between the checked component - and the short-circuited dependency. - The . - - - - Gets the collection of registrations that have the component's current dependency as - implementation type, but have a lifestyle that is different than the current dependency. - - A collection of instances. + + Internal helper for string resources. - + - Diagnostic result that warns about a component that depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Contains contextual information for creating an implementation type. + + Please see the + Register + method for more information. + - - Gets the created type. - A . - - - Gets the list of registrations that are dependencies of the . - A collection of instances. + + Gets the closed generic service type that is to be created. + The closed generic service type. - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + The or null. - - Gets the lifestyle on which instances are torn. - A . - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the list of registrations that are affected by this warning. - A list of instances. - - + - A map containing a generic argument (such as T) and the concrete type (such as Int32) that it - represents. + Returns a list of base types and interfaces of implementationType that either + equal to serviceType or are closed or partially closed version of serviceType (in case + serviceType itself is generic). + So: + -in case serviceType is non generic, only serviceType will be returned. + -If implementationType is open generic, serviceType will be returned (or a partially closed + version of serviceType is returned). + -If serviceType is generic and implementationType is not, a closed version of serviceType will + be returned. + -If implementationType implements multiple (partially) closed versions of serviceType, all those + (partially) closed versions will be returned. + The (open generic) service type to match. + The implementationType to search. + A list of types. - - Implements equality. Needed for doing LINQ distinct operations. - The other to compare to. - True or false. - - - Overrides the default hash code. Needed for doing LINQ distinct operations. - An 32 bit integer. + + Useful extensions on . - + - Container controlled collections can be supplied with both Type objects or direct Registration - instances. + Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed + in a C#-like syntax. Ideal for reporting type names in exception messages. + The type to convert. + A human-readable string representation of that type. + Thrown when the supplied argument is a null reference. - - Will never be null. Can be open-generic. - - - Can be null. - - + - Gets a message that describes the current exception. + Returns true is there is a closed version of the supplied + that is assignable from the current . This method returns true when either + itself, one of its base classes or one of its implemented interfaces is a + closed version of ; otherwise false. - The error message that explains the reason for the exception, or an empty string(""). + The type to check. + The generic type definition to match. + True when type is assignable; otherwise false. - + - Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done - by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a - single InstanceProducer and therefore a single service type. + Gets the single closed version of that the current + is assignable from. In case none or multiple matching closed types are + found, and exception is thrown. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + The matching closed type. + Thrown when one of the arguments is a null reference. + Thrown when is not + a generic type or when none of the base classes or implemented interfaces of + are closed-versions of . + Thrown when multiple matching closed generic types + are found. - + - Allows retrieving the concrete types of the generic type arguments of that must be used to create a - closed generic implementation of a given open generic implementation, based on on the concrete - arguments of the given closed base type. + Gets the list of closed versions of that the current + is assignable from. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + A list of matching closed generic types. - + - Helper class for building closed generic type for a given open generic type and a closed generic base. + Defines options to control the types returned from the + GetTypesToRegister + method. For a type to be returned, it should match all the conditions described by the class's + properties. In other words, in case the searched assembly contains a generic type, that is both a + decorator and a composite, it will only be returned by GetTypesToRegister in case both + , and + are set to true. - - Result of the GenericTypeBuilder. + + Initializes a new instance of the class. - + - A open generic type with the concrete arguments that can be used to create a closed generic type. + Gets or sets a value indicating whether decorator types should be included in the result. The default + value of this property is false. A type is considered a decorator if the type's constructor + contains a parameter of the type that exactly matches the serviceType argument, + supplied to the + GetTypesToRegister + method, or when there is a argument where T matches the + serviceType argument. + A boolean. - - This interface is not meant for public use. - - - Please do not use. - Do not use. - - - PLease do not use. - Do not use. - - + - Allows validating an ArgumentMapping. + Gets or sets a value indicating whether generic type definitions (types that have + Type.IsGenericTypeDefinition + set to true) + should be included in the result. The default value for this property is false. + A boolean. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. An execution context scope flows with the logical execution context. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Gets or sets a value indicating whether composite types should be included in the result. The default + value of this property is true. A type is considered a composite if the type's constructor + contains a parameter of IEnumerable<T>, ICollection<T>, + IList<T>, IReadOnlyCollection<T>, + IReadOnlyList<T> or T[] (array of T), where T + exactly matches the serviceType argument, supplied to the + GetTypesToRegister + method. - - The following example shows the usage of the ExecutionContextScopeLifestyle class: - (Lifestyle.Scoped); - - using (AsyncScopedLifestyle.BeginScope(container)) - { - var instance1 = container.GetInstance(); - // ... - } - ]]> - + A boolean. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + Provides data for and interaction with the + ResolveUnregisteredType event of + the . An observer can check the + to see whether the unregistered type can be handled. The + method can be called to register a delegate + that allows creation of instances of the unregistered for this and future requests. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - + + Gets the unregistered service type that is currently requested. + The unregistered service type that is currently requested. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Gets a value indicating whether the event represented by this instance has been handled. + This property will return true when has been called on + this instance. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The indication whether the event has been handled. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Registers a delegate that allows creation of instances of the type + expressed by the for this and future requests. The delegate + will be caches and future requests will directly call that delegate. - The container for which the delegate gets created. - A delegate. This method never returns null. + The delegate that allows creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Forwards CreateRegistration calls to the lifestyle that is returned from the registered - container.Options.LifestyleSelectionBehavior. + Registers an that describes the creation of instances of the type + expressed by the for this and future requests. The delegate + will be cached and future requests will directly use that expression or the compiled delegate. + + NOTE: If possible, use the Register(Registration) overload, + since this allows the analysis services to determine any configuration errors on the lifestyle of + the registration. + + The expression that describes the creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Registers a that describes the creation of instances of the type + expressed by the for this and future requests. The + registration will be cached and future requests will directly call unon that registration, the + expression that it generates or the delegate that gets compiled from that expression. - - The following example shows the usage of the ThreadScopedLifestyle class: - (Lifestyle.Scoped); - - using (container.BeginLifetimeScope()) - { - var instance1 = container.GetInstance(); - - // This call will return the same instance. - var instance2 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); - - // Create a nested scope. - using (container.BeginLifetimeScope()) - { - // A nested scope gets its own instance. - var instance3 = container.GetInstance(); - - Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); - - // This call will return the same instance. - var instance4 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); - } - } - ]]> - + The registration that describes the creation of instances according to + the registration's lifestyle of the type expressed by the . + Thrown when the is a + null reference. + Thrown when the is a + not exactly of type where T equals the . + + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + This enumeration has defines in which way the container should run the verification process. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - - - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Specifies that the container performs verification only, which means that it will test whether + all registrations can be constructed by iterating the registrations and letting the container + create at least one instance of each registration. An + will be thrown in case the configuration is invalid. - The container for which the delegate gets created. - A delegate. This method never returns null. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Specifies that the container will run diagnostic analysis after the verification succeeded. The + container will diagnose the configuration with a subset of the available diagnostic warnings, that + are most likely an indication of a configuration mistake. A complete set of diagnostic warnings + can be retrieved by calling + Analyzer.Analyze or by viewing the + container in the Visual Studio debugger, after the verification has succeeded. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. diff --git a/packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.dll b/packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.dll new file mode 100644 index 0000000000..809a346d6e Binary files /dev/null and b/packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.dll differ diff --git a/packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.xml b/packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.xml similarity index 82% rename from packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.xml rename to packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.xml index 7feac2e499..f7faf290af 100644 --- a/packages/SimpleInjector.4.0.12/lib/netstandard1.0/SimpleInjector.xml +++ b/packages/SimpleInjector.4.3.0/lib/netstandard1.0/SimpleInjector.xml @@ -34,637 +34,1234 @@ Basic) if no inner exception is specified. - + - The container. Create an instance of this type for registration of dependencies. + Extension methods for enable advanced scenarios. - - - Thread-safety: - Resolving instances can be done safely from multiple threads concurrently, but registration needs to - be done from one single thread. - - - It is therefore safe to call , , - GetService, and - and anything related to resolving instances from multiple thread - concurrently. It is however unsafe to call - RegisterXXX, - , , , - or anything related to registering from multiple threads concurrently. - - - Methods for batch registration. - Methods for registration of collections. - Methods for conditional registrations. - - These conditional registration methods lack a Func{PredicateContext, TService} predicate - method. This is deliberate, because would force the factory to be registered as transient, forcing - the whole parent structure to become transient as well. Besides this, it would blind the diagnostic - system, because it will stop at the delegate, instead of being able to analyze the object graph as - a whole. - - Methods for registration. - Methods for registration of decorators. - Methods for resolving instances. - Methods for verifying the container. - - - Initializes a new instance of the class. - - - Gets the container options. - The instance for this container. - + - Gets a value indicating whether the container is currently being verified on the current thread. + Determines whether the specified container is locked making any new registrations. The container + is automatically locked when GetInstance is called for the + first time. - True in case the container is currently being verified on the current thread; otherwise - false. + The container. + + true if the specified container is locked; otherwise, false. + + Thrown when is null. - - - Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is - returned from the registered container.Options.LifestyleSelectionBehavior. - + + Determines whether the specified container is currently verifying its configuration. + The container. + true if the specified container is verifying; otherwise, false. + Thrown when is null. - + - Returns an array with the current registrations. This list contains all explicitly registered - types, and all implicitly registered instances. Implicit registrations are all concrete - unregistered types that have been requested, all types that have been resolved using - unregistered type resolution (using the event), and - requested unregistered collections. Note that the result of this method may change over time, - because of these implicit registrations. + Retrieves an item from the container stored by the given or null when no + item is stored by that key. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . - An array of instances. + The container. + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + - Returns an array with the current registrations for root objects. Root objects are registrations - that are in the root of the object graph, meaning that no other registration is depending on it. + Stores an item by the given in the container. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - This list contains the root objects of all explicitly registered types, and all implicitly - registered instances. Implicit registrations are all concrete unregistered types that have been - requested, all types that have been resolved using unregistered type resolution (using the - event), and requested unregistered collections. Note that - the result of this method may change over time, because of these implicit registrations. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. - An array of instances. - Thrown when this method is called before - has been successfully called. - - - Determines whether the specified System.Object is equal to the current System.Object. - - The System.Object to compare with the current System.Object. - - True if the specified System.Object is equal to the current System.Object; otherwise, false. - - - - Returns the hash code of the current instance. - The hash code of the current instance. + The container. + The key of the item to insert or override. + The actual item. May be null. + Thrown when either or + is a null reference (Nothing in VB). - + - Returns a that represents the . + Adds an item by the given in the container by using the specified function, + if the key does not already exist. This operation is atomic. - - A that represents the . - - - - Gets the of the current instance. - The instance that represents the exact runtime - type of the current instance. - - - Releases all instances that are cached by the object. - - - Prevents any new registrations to be made to the container. - - - Releases all instances that are cached by the object. - True for a normal dispose operation; false to finalize the handle. + The Type of the item to create. + The container. + The key of the item to insert or override. + The function used to generate a value for the given key. The supplied + value of will be supplied to the function when called. + The stored item or the item from the . + Thrown when either , + or is a null reference (Nothing in VB). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with container's default lifestyle (which is transient by default). - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with the supplied . - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + + Deprecation extensions. + + - Registers all supplied based on the closed-generic version - of the given with the transient lifestyle. + This interface method has been removed. Please call GetInstanceProducerFor instead. - The definition of the open generic type. - A list types to be registered. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + The consumer. + Throws an exception. - + - Registers all supplied based on the closed-generic version - of the given with the given . + This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. - The definition of the open generic type. - A list types to be registered. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + Type of the abstraction that is requested. + The property to check. + True when the property should be injected. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. + Defines the container's behavior for finding a suitable constructor for the creation of a type. + Set the ConstructorResolutionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Gets the given 's constructor that can be used by the + container to create that instance. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). + Type of the implementation to find a suitable constructor for. + + The . This method never returns null. + + Thrown when no suitable constructor could be found. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Defines the container's behavior for building an expression tree for an dependency to inject, based on + the information of the consuming type the dependency is injected into. + Set the ConstructorInjectionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + + Verifies the specified . + Contextual information about the consumer where the built dependency is + injected into. + + Thrown when the type of the target supplied with + the supplied cannot be used for auto wiring. + Thrown when the supplied argument is a null reference. + + - Returns all concrete non-generic types that are located in the supplied - and implement or inherit from the supplied . - can be an open-generic type. + Gets the for the + Target of the supplied . - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). + Contextual information about the consumer where the built dependency is + injected into. + The indication whether the method should return null or throw + an exception when the type is not registered. + An that describes the intend of creating that + Target. This method never returns null. + Thrown when the argument is a null reference. - + - Returns all concrete types that are located in the supplied - and implement or inherit from the supplied and match the specified - . can be an open-generic type. + Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle + is explicitly supplied. + Set the LifestyleSelectionBehavior + property of the container's property to change the default behavior + of the container. By default, when no lifestyle is explicitly supplied, the + Transient lifestyle is used. - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - The options. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). - + + Selects the lifestyle based on the supplied type information. + Type of the implementation to that is registered. + The suited for the given type. + Thrown when either one of the arguments is a null reference. + + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterResolveInterceptor + method that takes this delegate. This type contains contextual information about a resolved type and it + allows the user to examine the given instance to decide whether the + should be applied or not. - The interface or base type that can be used to retrieve instances. - The container-uncontrolled collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - + - Registers a collection of singleton elements of type . + Gets the that is responsible for the initialization of the created + instance. - The interface or base type that can be used to retrieve instances. - The collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - Thrown when one of the elements of - is a null reference. + The or null (Nothing in VB) when the instance producer is + unknown. - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + /// The . - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterInitializer + overload that takes this delegate. This type contains contextual information about the creation and it + allows the user to examine the given instance to decide whether the instance should be initialized or + not. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets a null reference. This property has been deprecated. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + The null (Nothing in VB). - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. This can be - an a non-generic type, closed generic type or generic type definition. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - + /// The . - + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + Contains data that can be used to initialize a created instance. This data includes the actual + created and the information about the created instance. - The base type or interface for elements in the collection. - The collection of items to register. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - Thrown when represents an - open generic type. - + + Initializes a new instance of the struct. + The that contains contextual information + about the created instance. + The created instance. + + + Gets the with contextual information about the + created instance. + The . + + + Gets the created instance. + The created instance. + + + Returns the hash code for this instance. + A 32-bit signed integer that is the hash code for this instance. + + + Indicates whether this instance and a specified object are equal. + Another object to compare to. + True if the current object is equal to the other parameter; otherwise, false. + + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the current object is equal to another object of the same type. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + An object to compare with this object. + True if the current object is equal to the other parameter; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are equal. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The lifestyle that specifies how the returned instance will be cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are equal; otherwise, false. - + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are + not equal. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are not equal; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when and - are not a generic type or when - is a partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - - + + Initializes a new instance of the struct. + The scope factory. + The container. + + + Gets the lazily initialized Scope of the current LazyScope instance. + The current Scope or null. + + - Conditionally registers that an instance of the type returned from - will be returned every time a - is requested and where the supplied - returns true. The instance is cached according to the supplied - . Both the and - will only be evaluated a finite number of times; - they unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - A factory that allows building Type objects that define the - implementation type to inject, based on the given contextual information. The delegate is allowed - to return (partially) open-generic types. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the registration can be applied for - the requested service type. This predicate can be used to build a fallback mechanism where - multiple registrations for the same service type are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is a - partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - + Implementation type. - + - Conditionally registers that will be used every time a - is requested and where the supplied - returns true. The predicate will only be evaluated a finite number of times; the predicate is - unsuited for making decisions based on runtime conditions. + Initializes a new instance of the + struct. + The registration. + + + Gets the lazily initialized instance for the of the current LazyScopedRegistration. + The scope that is used to retrieve the instance. + The cached instance. + + + + Defines the container's behavior for selecting properties to inject during the creation of a type. + Set the PropertySelectionBehavior + property of the container's property to change the default behavior + of the container. By default, no properties will be injected by the container. - The base type or interface to register. This can be an open-generic type. - The instance to register. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is open generic or - is not assignable to . - - Thrown when this container instance is locked and can not be altered. - - - - Occurs when an instance of a type is requested that has not been registered explicitly, allowing - resolution of unregistered types before the container tries to create the type. - - - - The event is called by the container every time an - unregistered type is requested for the first time, allowing a developer to do unregistered type - resolution. By calling the - Register method on the + + + Determines whether a property should be injected by the container upon creation of its type. + + + The type being created for which the property should be injected. Note that this might a + different type than the type on which the property is declared (which might be a base class). + The property to check. + True when the property should be injected. + + + + A known relationship defines a relationship between two types. The Diagnostics Debug View uses this + information to spot possible misconfigurations. + + + + Initializes a new instance of the class. + The implementation type of the parent type. + The lifestyle of the parent type. + The type that the parent depends on (it is injected into the parent). + + + Gets the implementation type of the parent type of the relationship. + The implementation type of the parent type of the relationship. + + + Gets the lifestyle of the parent type of the relationship. + The lifestyle of the parent type of the relationship. + + + Gets the type that the parent depends on (it is injected into the parent). + The type that the parent depends on. + + + Serves as a hash function for a particular type. + A hash code for the current . + + + + Determines whether the specified is equal to the current + . + + The object to compare with the current object. + True if the specified is equal to the current + ; otherwise, false. + + + + The container. Create an instance of this type for registration of dependencies. + + + + Thread-safety: + Resolving instances can be done safely from multiple threads concurrently, but registration needs to + be done from one single thread. + + + It is therefore safe to call , , + GetService, and + and anything related to resolving instances from multiple thread + concurrently. It is however unsafe to call + RegisterXXX, + , , , + or anything related to registering from multiple threads concurrently. + + + Methods for batch registration. + Methods for registration of collections. + Methods for conditional registrations. + + These conditional registration methods lack a Func{PredicateContext, TService} predicate + method. This is deliberate, because would force the factory to be registered as transient, forcing + the whole parent structure to become transient as well. Besides this, it would blind the diagnostic + system, because it will stop at the delegate, instead of being able to analyze the object graph as + a whole. + + Methods for registration. + Methods for registration of decorators. + Methods for resolving instances. + Methods for verifying the container. + + + Initializes a new instance of the class. + + + Gets the container options. + The instance for this container. + + + + Gets a value indicating whether the container is currently being verified on the current thread. + + True in case the container is currently being verified on the current thread; otherwise + false. + + + + Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is + returned from the registered container.Options.LifestyleSelectionBehavior. + + + + + Returns an array with the current registrations. This list contains all explicitly registered + types, and all implicitly registered instances. Implicit registrations are all concrete + unregistered types that have been requested, all types that have been resolved using + unregistered type resolution (using the event), and + requested unregistered collections. Note that the result of this method may change over time, + because of these implicit registrations. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + + + + Returns an array with the current registrations for root objects. Root objects are registrations + that are in the root of the object graph, meaning that no other registration is depending on it. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + This list contains the root objects of all explicitly registered types, and all implicitly + registered instances. Implicit registrations are all concrete unregistered types that have been + requested, all types that have been resolved using unregistered type resolution (using the + event), and requested unregistered collections. Note that + the result of this method may change over time, because of these implicit registrations. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + Thrown when this method is called before + has been successfully called. + + + Determines whether the specified System.Object is equal to the current System.Object. + + The System.Object to compare with the current System.Object. + + True if the specified System.Object is equal to the current System.Object; otherwise, false. + + + + Returns the hash code of the current instance. + The hash code of the current instance. + + + + Returns a that represents the . + + + A that represents the . + + + + Gets the of the current instance. + The instance that represents the exact runtime + type of the current instance. + + + Releases all instances that are cached by the object. + + + Prevents any new registrations to be made to the container. + + + Releases all instances that are cached by the object. + True for a normal dispose operation; false to finalize the handle. + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + An assembly that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the transient lifestyle. + + The definition of the open generic type. + A list types to be registered. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the given . + + The definition of the open generic type. + A list types to be registered. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + assemblies = new[] { typeof(ILogger).Assembly }; + var types = container.GetTypesToRegister(assemblies) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ( + typeof(ILogger).Assembly, + typeof(FileLogger).Assembly) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Container.Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete types that are located in the supplied + and implement or inherit from the supplied and match the specified + . can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + The options. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + + + + Registers a collection of singleton elements of type . + + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The lifestyle that specifies how the returned instance will be cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when and + are not a generic type or when + is a partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of the type returned from + will be returned every time a + is requested and where the supplied + returns true. The instance is cached according to the supplied + . Both the and + will only be evaluated a finite number of times; + they unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + A factory that allows building Type objects that define the + implementation type to inject, based on the given contextual information. The delegate is allowed + to return (partially) open-generic types. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the registration can be applied for + the requested service type. This predicate can be used to build a fallback mechanism where + multiple registrations for the same service type are made. + Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is a + partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + is requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is open generic or + is not assignable to . + + Thrown when this container instance is locked and can not be altered. + + + + + Occurs when an instance of a type is requested that has not been registered explicitly, allowing + resolution of unregistered types before the container tries to create the type. + + + + The event is called by the container every time an + unregistered type is requested for the first time, allowing a developer to do unregistered type + resolution. By calling the + Register method on the , a , or delegate can be registered allowing the container to retrieve instances of the requested type. This registration is cached and it prevents the @@ -891,7 +1488,7 @@ will result in an , while registrations that take a delegate (such as Register<TService>(Func<TService>)) will result in an . Singletons that are passed in using their - value (RegisterSingleton<TService>(TService)) + value (RegisterInstance<TService>(TService)) will result in an . Note that other ExpressionBuilding registrations might have changed the property and might have supplied an of a different type. The order in @@ -958,6 +1555,14 @@ + + Gets the object that allows access to methods related to registration and creation of collections. + The instance for this container. + + + This property is obsolete. Please use instead. + The instance for this container. + Registers that a new instance of will be returned every time it @@ -1190,6 +1795,25 @@ Thrown when is a null reference. + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton<TService>(Func<TService>). + + The interface or base type that can be used to retrieve the instance. + The instance to register. + + Thrown when this container instance is locked and can not be altered, or when the + has already been registered. + + Thrown when is a null reference. + + Registers a single instance that will be returned when an instance of type @@ -1207,6 +1831,27 @@ the has already been registered. + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton(Type, Func<object>). + + The base type or interface to register. + The instance to register. + Thrown when either or + are null references (Nothing in VB). + Thrown when is + no sub type from . + + Thrown when this container instance is locked and can not be altered, or when an + the has already been registered. + + Registers a single concrete instance that will be constructed using constructor injection and will @@ -1387,7 +2032,7 @@ (using constructor injection). Types that are newed up manually by supplying a delegate to the container (using the method) or registered as single instance - (using ) will not trigger initialization. + (using ) will not trigger initialization. When initialization of these instances is needed, this must be done manually, as can be seen in the following example: option is supplied. Thrown when has an invalid value. - - - Delegate that allows intercepting calls to and - . - - Contextual information about the to be created object. - A delegate that produces the actual instance according to its - lifestyle settings. - The instance that is returned from or an intercepted instance. - - - Configuration options for the Container. - - The following example shows the typical usage of the ContainerOptions class. - (); - - // Use of ContainerOptions class here. - container.Options.AllowOverridingRegistrations = true; - - // Replaces the previous registration of ITimeProvider - container.Register(); - ]]> - - - - - Gets the container to which this ContainerOptions instance belongs to. - - The current Container. - - + - Gets or sets a value indicating whether the container allows overriding registrations. The default - is false. + Contains methods for registering and creating collections in the . - The value indicating whether the container allows overriding registrations. - + - Gets or sets a value indicating whether the container should suppress checking for lifestyle - mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default - is false. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether the container should suppress checking for lifestyle - mismatches. - - - Gets or sets a value indicating whether. - This method is deprecated. Changing its value will have no effect. - The value indicating whether the container will return an empty collection. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets a value indicating whether all the containers in the current AppDomain should throw - exceptions that contain fully qualified type name. The default is false which means - the type's namespace is omitted. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether exception message should emit full type names. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets the constructor resolution behavior. By default, the container only supports types - that have a single public constructor. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The constructor resolution behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - Gets or sets the dependency injection behavior. - The constructor injection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the property selection behavior. The container's default behavior is to do no - property injection. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The property selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. - - - - - Gets or sets the lifestyle selection behavior. The container's default behavior is to make - registrations using the lifestyle. - The lifestyle selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. - - - - - Gets or sets the default lifestyle that the container will use when a registration is - made when no lifestyle is supplied. - The default lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the default scoped lifestyle that the container should use when a registration is - made using Lifestyle.Scoped. - The default scoped lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - - - Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. - By default, this value is true for the first few containers that are created in an AppDomain - and false for all other containers. You can set this value explicitly to false - to prevent the use of dynamic assemblies or you can set this value explicitly to true to - force more container instances to use dynamic assemblies. Note that creating an infinite number - of Container instances (for instance one per web request) - with this property set to true will result in a memory leak; dynamic assemblies take up - memory and will only be unloaded when the AppDomain is unloaded. - - A boolean indicating whether the container should use a dynamic assembly for compilation. - - - + - Registers an delegate that allows intercepting calls to - GetInstance and - . + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - If multiple registered instances must be applied, they will be - applied/wrapped in the order of registration, i.e. the first registered interceptor will call the - original instance producer delegate, the second interceptor will call the first interceptor, etc. - The last registered interceptor will become the outermost method in the chain and will be called - first. - - The delegate to register. - The predicate that will be used to check whether the given delegate must - be applied to a registration or not. The given predicate will be called once for each registration - in the container. - - Thrown when either the or are - null references. - - - Thrown when this container instance is locked and can not be altered. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - The following example shows the usage of the method: - - { - object instance = producer.Invoke(); - Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); - return instance; - }, - context => context.Producer.ServiceType.Name.EndsWith("Controller")); - - container.Register(); - container.Register(); - - // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. - container.GetInstance(); - ]]> - - - Returns a string that represents the current object. - A string that represents the current object. + + + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - An instance of this type can be injected into constructors of decorator classes that are registered - using RegisterDecorator. This type contains - contextual information about the applied decoration and it allows users to examine the given instance - to make runtime decisions. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The implementation type. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the list of the types of decorators that have already been applied to this instance. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The applied decorators. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The current expression that is about to be decorated. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterDecorator - overload that takes this delegate. This type contains information about the decoration that is about - to be applied and it allows users to examine the given instance to see whether the decorator should - be applied or not. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - Please see the - RegisterDecorator - method for more information. - + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The closed generic service type. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The implementation type. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the list of the types of decorators that have already been applied to this instance. + Appends a new to existing registrations made using one of the + Container.Collections.Register + overloads. - The applied decorators. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads. - The current expression that is about to be decorated. + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + Thrown when the is ambiguous. + - + - Thrown by the container in case of a diagnostic error. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads with the given . + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + The lifestyle that specifies how the returned instance will be cached. + Thrown when the is ambiguous. + + Thrown when is a null reference. + - + - Initializes a new instance of the class. + Appends a new registration to existing registrations made for a collection of + elements using one of the + Container.Collections.Register + overloads. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Initializes a new instance of the class with a specified error - message. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. - The message that describes the error. + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. - + - Initializes a new instance of the class with a specified error - message. + Registers a collection of singleton elements of type . - The list of errors. + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. - + - Initializes a new instance of the class with a specified error - message and a reference to the inner exception that is the cause of this exception. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual - Basic) if no inner exception is specified. - + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - - Gets the list of instances. - A list of instances. + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Provides data for and interaction with the - ExpressionBuilding event of - the . An observer can change the - property to change the component that is - currently being built. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - + - Gets the type that is known to be returned by the - Expression (most often the implementation - type used in the Register call). This type will be a derivative of - RegisteredServiceType (or - or RegisteredServiceType itself). If the Expression is changed, the new expression - must also return an instance of type KnownImplementationType or a sub type. - This information must be described in the new Expression. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - A . - - - Gets the lifestyle for the component that is currently being built. - The . - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The collection of instances. + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - + - Provides data for and interaction with the - ExpressionBuilt event of - the . An observer can change the - property to change the component that is currently - being built. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. - - Initializes a new instance of the class. - Type of the registered service. - The registered expression. - - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. - - - Gets or sets the current lifestyle of the registration. - The original lifestyle of the registration. - - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The collection of instances. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Helper methods for the container. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Contains contextual information about the direct consumer for which the given dependency is injected - into. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - - Initializes a new instance of the class. - The constructor parameter for the created component. - - - Initializes a new instance of the class. - The implementation type of the consumer of the component that should be created. - The property for the created component. - - - Gets the service type of the consumer of the component that should be created. - The closed generic service type. - - - Gets the implementation type of the consumer of the component that should be created. - The implementation type. - - + - Gets the information about the consumer's target in which the dependency is injected. The target - can be either a property or a constructor parameter. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. - The for this context. - - - Returns a string that represents the . - A string. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Discovers the attributes of the code element (a property or parameter) where a dependency will be - injected into, and provides access to its meta data. + Delegate that allows intercepting calls to and + . + Contextual information about the to be created object. + A delegate that produces the actual instance according to its + lifestyle settings. + The instance that is returned from or an intercepted instance. - - Gets the constructor argument of the consumer of the component where the dependency will be - injected into. The property can return null. - The or null when the dependency is injected into a property. - - - Gets the property of the consumer of the component where the dependency will be injected into. - The property can return null. - The or null when the dependency is injected into a constructor - argument instead. - - - Gets the name of the target. - A string containing the name of the target. - - - Gets the type of the target. - A containing the type of the target. - - - Gets the member of the target. This is either the constructor of the parameter, or in - case the target is a property, the property itself will be returned. - A containing the type of the target. + + Configuration options for the Container. + + The following example shows the typical usage of the ContainerOptions class. + (); + + // Use of ContainerOptions class here. + container.Options.AllowOverridingRegistrations = true; + + // Replaces the previous registration of ITimeProvider + container.Register(); + ]]> + - + - Returns an array of all of the custom attributes defined on either the or - the , excluding named attributes, or an empty array if there are no custom - attributes. + Gets the container to which this ContainerOptions instance belongs to. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - There is more than one attribute of type attributeType - defined on this member. + The current Container. - + - Returns an array of custom attributes defined on either the or - the , identified by type, or an empty array if there are no custom - attributes of that type. + Gets or sets a value indicating whether the container allows overriding registrations. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - attributeType is null. + The value indicating whether the container allows overriding registrations. - + - Indicates whether one or more instance of attributeType is defined on this either the - or the . + Gets or sets a value indicating whether the container should suppress checking for lifestyle + mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - true if the attributeType is defined on this member; false otherwise. + The value indicating whether the container should suppress checking for lifestyle + mismatches. - + + Gets or sets a value indicating whether. + This method is deprecated. Changing its value will have no effect. + The value indicating whether the container will return an empty collection. + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets a value indicating whether all the containers in the current AppDomain should throw + exceptions that contain fully qualified type name. The default is false which means + the type's namespace is omitted. - The parameter to inspect. - A custom attribute that matches T, or null if no such attribute is found. + The value indicating whether exception message should emit full type names. - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. + Gets or sets the constructor resolution behavior. By default, the container only supports types + that have a single public constructor. - The parameter to inspect.The parameter to inspect. - True to inspect the ancestors of element; otherwise, false. - A custom attribute that matches T, or null if no such attribute is found. + The constructor resolution behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + + Gets or sets the dependency injection behavior. + The constructor injection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets the property selection behavior. The container's default behavior is to do no + property injection. - The type of attribute to search for. - A custom attribute that matches attributeType, or null if no such attribute is found. + The property selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. - - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A custom attribute matching attributeType, or null if no such attribute is found. + Gets or sets the lifestyle selection behavior. The container's default behavior is to make + registrations using the lifestyle. + The lifestyle selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - - The type of attribute to search for. - A collection of the custom attributes that are applied to element and that match T, or - an empty collection if no such attributes exist. + Gets or sets the default lifestyle that the container will use when a registration is + made when no lifestyle is supplied. + The default lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified - parameter, and optionally inspects the ancestors of that parameter. + Gets or sets the default scoped lifestyle that the container should use when a registration is + made using Lifestyle.Scoped. + The default scoped lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + + + Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. + By default, this value is true for the first few containers that are created in an AppDomain + and false for all other containers. You can set this value explicitly to false + to prevent the use of dynamic assemblies or you can set this value explicitly to true to + force more container instances to use dynamic assemblies. Note that creating an infinite number + of Container instances (for instance one per web request) + with this property set to true will result in a memory leak; dynamic assemblies take up + memory and will only be unloaded when the AppDomain is unloaded. - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A collection of the custom attributes that are applied to element and that match T, or an - empty collection if no such attributes exist. + A boolean indicating whether the container should use a dynamic assembly for compilation. + - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - GetCurrentRegistrations() or - GetRegistration(Type, bool). + Registers an delegate that allows intercepting calls to + GetInstance and + . - The Register method overloads create InstanceProducer instances internally, but - InstanceProducers can be created manually to implement special scenarios. An - InstanceProducer wraps instance. The Registration builds an - that describes the intend to create the instance according to a certain - lifestyle. The InstanceProducer on the other hand transforms this Expression to a - delegate and allows the actual instance to be created. A Registration itself can't create any - instance. The InsanceProducer allows intercepting created instances by hooking onto the - Container.ExpressionBuilt event. The - RegisterDecorator methods for - instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance - with a decorator. + If multiple registered instances must be applied, they will be + applied/wrapped in the order of registration, i.e. the first registered interceptor will call the + original instance producer delegate, the second interceptor will call the first interceptor, etc. + The last registered interceptor will become the outermost method in the chain and will be called + first. + The delegate to register. + The predicate that will be used to check whether the given delegate must + be applied to a registration or not. The given predicate will be called once for each registration + in the container. + + Thrown when either the or are + null references. + + + Thrown when this container instance is locked and can not be altered. + - The following example shows the creation of two different InstanceProducer instances that wrap - the same Registration instance. Since the Registration is created using the - Singleton lifestyle, both producers will return - the same instance. The InstanceProducer for the Interface1 however, will wrap that - instance in a (transient) Interface1Decorator. + The following example shows the usage of the method: (container); - - var producer1 = new InstanceProducer(typeof(Interface1), registration); - var producer2 = new InstanceProducer(typeof(Interface2), registration); - - container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); - - var instance1 = (Interface1)producer1.GetInstance(); - var instance2 = (Interface2)producer2.GetInstance(); - - Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); - Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + container.Options.RegisterResolveInterceptor((context, producer) => + { + object instance = producer.Invoke(); + Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); + return instance; + }, + context => context.Producer.ServiceType.Name.EndsWith("Controller")); + + container.Register(); + container.Register(); - Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); - ]]> - - - - Initializes a new instance of the class. - The service type for which this instance is created. - The . - - - - Gets the for this registration. The returned lifestyle can differ from the - lifestyle that is used during the registration. This can happen for instance when the registration - is changed by an ExpressionBuilt - registration or gets decorated. - - The for this registration. - - - Gets the service type for which this producer produces instances. - A instance. - - - Gets the instance for this instance. - The . - - - - Creates a new based on the given - and where the will be used as-is; - no interception (using ExpressionBuilt) such as - decorators will be applied. - - The service type for which this instance is created. - The expression that describes the instance to be produced. - The instance for this registration. - A new that describes the expression. + // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. + container.GetInstance(); + ]]> + - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + + Returns a string that represents the current object. + A string that represents the current object. - + - Builds an expression that expresses the intent to get an instance by the current producer. A call - to this method locks the container. No new registrations can't be made after a call to this method. + An instance of this type can be injected into constructors of decorator classes that are registered + using RegisterDecorator. This type contains + contextual information about the applied decoration and it allows users to examine the given instance + to make runtime decisions. - An Expression. - + - Gets the collection of relationships for this instance that the container knows about. - This includes relationships between the registered type and its dependencies and relationships - between applied decorators and their dependencies. Note that types that are not newed up by the - container and properties that are injected inside a custom delegate that is registered using the - RegisterInitializer - method are unknown to the container and are not returned from this method. - Also note that this method will return an empty collection when called before the - registered type is requested from the container (or before - Verify is called). + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - An array of instances. + The closed generic service type. - + - Builds a string representation of the object graph with the current instance as root of the - graph. + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - A string representation of the object graph. - Thrown when this method is called before - or have been called. These calls can be - done directly and explicitly by the user on this instance, indirectly by calling - or on an instance that depends on this - instance, or by calling Verify on the container. - + The implementation type. - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - or . + Gets the list of the types of decorators that have already been applied to this instance. - The service type. - - - Initializes a new instance of the class. - The . - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + The applied decorators. - + - Factory for the creation of a delegate that applies caching to the supplied - . + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. - A factory for creating new instances. - A factory that returns cached instances. + The current expression that is about to be decorated. - + - Instances returned from the container can be cached. The contains several - overloads of the Register method that take a Lifestyle instance as argument to define - how returned instances should be cached. The core library contains two lifestyles out of the box. By - supplying Lifestyle.Transient, the registered instance is not - cached; a new instance is returned every time it is requested or injected. By supplying - Lifestyle.Singleton instances can be cached indefinitely; only - a single instance of the registered component will be returned by that container instance. Other - lifestyles are defined in integration and extension packages. The - CreateCustom method allows defining a custom lifestyle and - the CreateHybrid method - allows creating a lifestyle that mixes multiple other lifestyles. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterDecorator + overload that takes this delegate. This type contains information about the decoration that is about + to be applied and it allows users to examine the given instance to see whether the decorator should + be applied or not. - This type is abstract and can be overridden to implement a custom lifestyle. + Please see the + RegisterDecorator + method for more information. - + - The lifestyle instance that doesn't cache instances. A new instance of the specified - component is created every time the registered service is requested or injected. + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - - The following example registers the SomeServiceImpl implementation for the - ISomeService service type using the Transient lifestyle: - (Lifestyle.Transient); - ]]> - Note that Transient is the default lifestyle, the previous registration can be reduced to - the following: - (); - ]]> - + The closed generic service type. - + - - The lifestyle that caches components according to the lifetime of the container's configured - scoped lifestyle. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the active scope gets disposed. - + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Scoped lifestyle: - (Lifestyle.Scoped); - ]]> - + The implementation type. - + - - The lifestyle that caches components during the lifetime of the instance - and guarantees that only a single instance of that component is created for that instance. Since - general use is to create a single Container instance for the lifetime of the application / - AppDomain, this would mean that only a single instance of that component would exist during the - lifetime of the application. In a multi-threaded applications, implementations registered using - this lifestyle must be thread-safe. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the container gets disposed. - + Gets the list of the types of decorators that have already been applied to this instance. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Singleton lifestyle: - (Lifestyle.Singleton); - ]]> - - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. + The applied decorators. - - Gets the user friendly name of this lifestyle. - The user friendly name of this lifestyle. + + + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. + + The current expression that is about to be decorated. - + - Gets the length of the lifestyle. Implementers must implement this property. The diagnostic - services use this value to compare lifestyles with each other to determine lifestyle - misconfigurations. + Hooks into the building process and adds a decorator if needed. - The representing the length of this lifestyle. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diaal. - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - - + + Gets the lifestyles that causes the registrations to be conflicting. + instances. + + + Gets the implementation type that the affected registrations map to. + A . + + + Gets the registration that caused this warning. + /// An . + + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Gets the list of registrations that are in conflict with the . - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - + A list of instances. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Entry point for doing diagnostic analysis on instances. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The lifestyle to use when - returns true. - The lifestyle to use when - returns false. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - - Hybrid lifestyles can be nested: - + The following example shows the usage of the Analyzer class: lifestyle.GetCurrentScope(container) != null, - lifestyle, - Lifestyle.Transient); + DiagnosticResult[] results = Analyzer.Analyze(container); - var mixedScopeLifestyle = Lifestyle.CreateHybrid( - () => HttpContext.Current != null, - new WebRequestLifestyle(), - mixedLifetimeTransientLifestyle); + var typesWithAShortedLifetimeThanTheirDependencies = + from result in results + where result.DiagnosticType == DiagnosticType.LifestyleMismatch + let mismatch = (LifestyleMismatchDiagnosticResult)result + select mismatch.Relationship.ImplementationType; ]]> - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and - Transient. - - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Analyzes the supplied instance. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The scoped lifestyle to use when - returns true. - The scoped lifestyle to use when - returns false. - A new scoped hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - + The container instance to analyze. + A collection of sub types that describe the diagnostic + warnings and messages. - + - Creates a custom lifestyle using the supplied delegate. + Diagnostic result for a warning about a concrete type that was not registered explicitly and was not + resolved using unregistered type resolution, but was created by the container using the transient + lifestyle. + For more information, see: https://simpleinjector.org/diaut. - - The supplied will be called just once per registered - service. The supplied will be called by the framework - when the type is resolved for the first time, and the framework will supply the factory with a - Func<object> for creating new (transient) instances of that type (that might - have been intercepted and - initializers might have been applied). - It is the job of the to return a Func<object> - that applies the proper caching. The Func<object> that is returned by the - will be stored for that registration (every - registration will store its own Func<object> delegate) and this delegate will be - called every time the service is resolved (by calling - container.GetInstance<TService> or when that service is injected into another - type). - - The name of the lifestyle to create. The name is used to display the lifestyle - in the debugger. - A factory delegate that takes a Func<object> delegate - that will produce a transient instance and returns a delegate that returns cached instances. - A new . - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is an empty string. - - The following example shows the creation of a lifestyle that caches registered instances for 10 - minutes: - - { - TimeSpan timeout = TimeSpan.FromMinutes(10); - var syncRoot = new object(); - var expirationTime = DateTime.MinValue; - object instance = null; - - // If the application has multiple registrations using this lifestyle, each registration - // will get its own Func delegate (created here) and therefore get its own set - // of variables as defined above. - return () => - { - lock (syncRoot) - { - if (expirationTime < DateTime.UtcNow) - { - instance = instanceCreator(); - expirationTime = DateTime.UtcNow.Add(timeout); - } - - return instance; - } - }; - }); - - var container = new Container(); - - // We can reuse the created lifestyle for multiple registrations. - container.Register(customLifestyle); - container.Register(customLifestyle); - ]]> - - + + Gets a collection of instances that describe all + container-registered dependencies for the given component. + List of objects. + + + + A hierarchical group of . + + + + + Gets the base that describes the service types of its + . The value often be either (in case this is a + root group) or a partial generic type to allow hierarchical grouping of a large number of related + generic types. + + The . + + + Gets the friendly name of the group. + The name. + + + Gets the description of the group. + The description. + + + Gets the diagnostic type of all grouped instances. + The . + + + Gets the parent or null (Nothing in VB) when this is the + root group. + The . + + + Gets the collection of child s. + A collection of elements. + + + Gets the collection of instances. + /// A collection of elements. + + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Base class for types that hold information about a single diagnostic message or warning for a + particular type or part of the configuration. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + + Gets the severity of this result. + The . + + + Gets the diagnostic type of this result. + The . + + + Gets the service type to which this warning is related. + A . + + + Gets the description of the diagnostic result. + A with the description. + + + Gets the documentation URL of the diagnostic result. + A with the URL. + + + Gets the hierarchical group to which this diagnostic result belongs. + The . + + - Creates a new instance for the given - that will create new instances of specified caching as - specified by this lifestyle. + Specifies the list of severity levels that diagnostic results can have. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + + Information messages and tips about the configuration. + + + Warning messages that are likely to cause problems in your application. + + - Creates a new instance for the given - that will create new instances instance using the supplied - with the caching as specified by this lifestyle. + Specifies the list of diagnostic types that are currently supported by the diagnostic + . Note that new diagnostic types might be added in future versions. + For more information, please read the + Diagnosing your configuration using the Diagnostic + Services wiki documentation. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Diagnostic type that warns about + a concrete type that was not registered explicitly and was not resolved using unregistered type + resolution, but was created by the container using the transient lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. + Diagnostic type that warns when a + component depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - The concrete type that will be registered. - The instance for which a - must be created. - A new or cached instance. - Thrown when is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when a + component depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when a component depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. - This method might fail when run in a partial trust sandbox when - is an internal type. + Diagnostic type that warns when multiple registrations map to the same component and + lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when a component is registered as transient, while implementing + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when multiple registrations exist that map to the same component but + with different lifestyles, which will cause the component to be cached in different -possibly + incompatible- ways. + For more information, see: https://simpleinjector.org/diaal. - The interface or base type that can be used to retrieve the instances. - The delegate that will be responsible for creating new instances. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - When overridden in a derived class, - creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Diagnostic result for a warning about a component that is registered as transient, but implements + . + For more information, see: https://simpleinjector.org/diadt. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + - When overridden in a derived class, - creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic result for a warning about a + component that depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. + + + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + + + Diagnostic result that warns about a + component that depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. + + + + Gets the instance that describes the current relationship between the checked component + and the short-circuited dependency. + The . + + + + Gets the collection of registrations that have the component's current dependency as + implementation type, but have a lifestyle that is different than the current dependency. + + A collection of instances. + + + + Diagnostic result that warns about a component that depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the created type. + A . + + + Gets the list of registrations that are dependencies of the . + A collection of instances. + + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterConditional - overload that takes this delegate. This type contains information about the open generic service that - is about to be created and it allows the user to examine the given instance to decide whether this - implementation should be created or not. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - - Please see the - Register - method for more information. - - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the lifestyle on which instances are torn. + A . - - Gets the closed generic implementation type that will be created by the container. - The implementation type. + + Gets the implementation type that the affected registrations map to. + A . - - Gets a value indicating whether a previous Register registration has already - been applied for the given . - The indication whether the event has been handled. + + Gets the list of registrations that are affected by this warning. + A list of instances. - + - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. + Thrown by the container in case of a diagnostic error. - The or null. - + - A Registration implements lifestyle based caching for a single service and allows building an - that describes the creation of the service. + Initializes a new instance of the class. - - implementations create a new Registration instance for each registered - service type. s returned from the - BuildExpression method can be - intercepted by any event registered with , have - initializers - applied, and the caching particular to its lifestyle have been applied. Interception using the - Container.ExpressionBuilt will not - be applied in the Registration, but will be applied in . - - See the documentation for an example. - - + - Initializes a new instance of the class. + Initializes a new instance of the class with a specified error + message. - The this that created this registration. - The instance for this registration. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - Gets the type that this instance will create. - The type that this instance will create. - - - Gets the this that created this registration. - The this that created this registration. - - - Gets the instance for this registration. - The instance for this registration. - - - Gets or sets a value indicating whether this registration object contains a user - supplied instanceCreator factory delegate. + The message that describes the error. - + - Builds a new with the correct caching (according to the specifications of - its ) applied. + Initializes a new instance of the class with a specified error + message. - An . + The list of errors. - + - Gets the list of instances. Note that the list is only available - after calling . + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. - A new array containing the instances. + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual + Basic) if no inner exception is specified. + - + + Gets the list of instances. + A list of instances. + + - Initializes an already created instance and applies properties and initializers to that instance. + Provides data for and interaction with the + ExpressionBuilding event of + the . An observer can change the + property to change the component that is + currently being built. - - This method is especially useful in integration scenarios where the given platform is in control - of creating certain types. By passing the instance created by the platform to this method, the - container is still able to apply any properties (as defined using a custom - ) and by applying any initializers. - - The instance to initialize. - Thrown when is a null reference - (Nothing in VB). - Thrown when the supplied is not - of type . - + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + - Suppressing the supplied for the given registration. + Gets the type that is known to be returned by the + Expression (most often the implementation + type used in the Register call). This type will be a derivative of + RegisteredServiceType (or + or RegisteredServiceType itself). If the Expression is changed, the new expression + must also return an instance of type KnownImplementationType or a sub type. + This information must be described in the new Expression. - The . - The justification of why the warning must be suppressed. - Thrown when is a null - reference. - Thrown when either is an - empty string or when is not a valid value of . - + A . - + + Gets the lifestyle for the component that is currently being built. + The . + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + - Builds a delegate for the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers - that are applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - A delegate. - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds a delegate for the creation of . - The returned might be intercepted by a - Container.ExpressionBuilding event, - and the creation of the will have been wrapped with a - delegate that executes the registered - initializers - that are applicable to the given (if any). + Provides data for and interaction with the + ExpressionBuilt event of + the . An observer can change the + property to change the component that is currently + being built. - A delegate. - Thrown when one of the arguments is a null reference. - + + Initializes a new instance of the class. + Type of the registered service. + The registered expression. + + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + + Gets or sets the current lifestyle of the registration. + The original lifestyle of the registration. + + - Builds an that describes the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers that are - applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - An . - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds an that describes the creation of . - The returned might be intercepted - by a Container.ExpressionBuilding - event, and the creation of the will have been wrapped with - a delegate that executes the registered - initializers that are applicable - to the InstanceProducer's ServiceType (if any). + Helper methods for the container. + + + + + Contains contextual information about the direct consumer for which the given dependency is injected + into. - An . - Thrown when one of the arguments is a null reference. - - Implements a cache for implementations. - - is thread-safe can be used over multiple threads concurrently, but note that the - cached instances might not be thread-safe. - + + Initializes a new instance of the class. + The constructor parameter for the created component. - - Initializes a new instance of the class. + + Initializes a new instance of the class. + The implementation type of the consumer of the component that should be created. + The property for the created component. - - Initializes a new instance of the class. - The container instance that the scope belongs to. + + Gets the service type of the consumer of the component that should be created. + The closed generic service type. - - Gets the container instance that this scope belongs to. - The instance. + + Gets the implementation type of the consumer of the component that should be created. + The implementation type. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Gets the information about the consumer's target in which the dependency is injected. The target + can be either a property or a constructor parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The for this context. - - - Adds the to the list of items that will get disposed when the - scope ends. - - - Instances that are registered for disposal, will be disposed in opposite order of registration and - they are guaranteed to be disposed when is called (even when - exceptions are thrown). This mimics the behavior of the C# and VB using statements, - where the method is called inside the finally block. - - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + + Returns a string that represents the . + A string. - + - Retrieves an item from the scope stored by the given or null when no - item is stored by that key. + Discovers the attributes of the code element (a property or parameter) where a dependency will be + injected into, and provides access to its meta data. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Stores an item by the given in the scope. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The key of the item to insert or override. - The actual item. May be null. - Thrown when paramref name="key"/> is a null reference - (Nothing in VB). + + Gets the constructor argument of the consumer of the component where the dependency will be + injected into. The property can return null. + The or null when the dependency is injected into a property. - - Releases all instances that are cached by the object. + + Gets the property of the consumer of the component where the dependency will be injected into. + The property can return null. + The or null when the dependency is injected into a constructor + argument instead. - + + Gets the name of the target. + A string containing the name of the target. + + + Gets the type of the target. + A containing the type of the target. + + + Gets the member of the target. This is either the constructor of the parameter, or in + case the target is a property, the property itself will be returned. + A containing the type of the target. + + - Releases all instances that are cached by the object. + Returns an array of all of the custom attributes defined on either the or + the , excluding named attributes, or an empty array if there are no custom + attributes. - False when only unmanaged resources should be released. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + There is more than one attribute of type attributeType + defined on this member. - + - Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly - or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly - defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal - or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create - more than one instance of such registered type. + Returns an array of custom attributes defined on either the or + the , identified by type, or an empty array if there are no custom + attributes of that type. + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + Thrown when attributeType is null. - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Signals the lifestyle whether instances should be - disposed or not. - Thrown when is null (Nothing in VB) - or an empty string. - - - Gets the length of the lifestyle. - The representing the length of this lifestyle. + + + Indicates whether one or more instance of attributeType is defined on this either the + or the . + + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + true if the attributeType is defined on this member; false otherwise. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The instance. - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect. + A custom attribute that matches T, or null if no such attribute is found. - + - Adds the to the list of items that will get disposed when the - scope ends. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The instance. - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect.The parameter to inspect. + True to inspect the ancestors of element; otherwise, false. + A custom attribute that matches T, or null if no such attribute is found. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The type of attribute to search for. + A custom attribute that matches attributeType, or null if no such attribute is found. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The container for which the delegate gets created. - A delegate. This method should never return null. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A custom attribute matching attributeType, or null if no such attribute is found. - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + A collection of the custom attributes that are applied to element and that match T, or + an empty collection if no such attributes exist. - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified + parameter, and optionally inspects the ancestors of that parameter. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A collection of the custom attributes that are applied to element and that match T, or an + empty collection if no such attributes exist. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + GetCurrentRegistrations() or + GetRegistration(Type, bool). - By default, this method calls the method and invokes the - returned delegate. This method can be overridden to provide an optimized way for getting the - current scope. + The Register method overloads create InstanceProducer instances internally, but + InstanceProducers can be created manually to implement special scenarios. An + InstanceProducer wraps instance. The Registration builds an + that describes the intend to create the instance according to a certain + lifestyle. The InstanceProducer on the other hand transforms this Expression to a + delegate and allows the actual instance to be created. A Registration itself can't create any + instance. The InsanceProducer allows intercepting created instances by hooking onto the + Container.ExpressionBuilt event. The + RegisterDecorator methods for + instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance + with a decorator. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + + The following example shows the creation of two different InstanceProducer instances that wrap + the same Registration instance. Since the Registration is created using the + Singleton lifestyle, both producers will return + the same instance. The InstanceProducer for the Interface1 however, will wrap that + instance in a (transient) Interface1Decorator. + (container); + + var producer1 = new InstanceProducer(typeof(Interface1), registration); + var producer2 = new InstanceProducer(typeof(Interface2), registration); + + container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); + + var instance1 = (Interface1)producer1.GetInstance(); + var instance2 = (Interface2)producer2.GetInstance(); + + Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); + Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + + Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + ]]> + - - Internal helper for string resources. + + Initializes a new instance of the class. + The service type for which this instance is created. + The . - + - Contains contextual information for creating an implementation type. + Gets the for this registration. The returned lifestyle can differ from the + lifestyle that is used during the registration. This can happen for instance when the registration + is changed by an ExpressionBuilt + registration or gets decorated. - - Please see the - Register - method for more information. - + The for this registration. - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the service type for which this producer produces instances. + A instance. - - - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. - - The or null. + + Gets the instance for this instance. + The . - + - Returns a list of base types and interfaces of implementationType that either - equal to serviceType or are closed or partially closed version of serviceType (in case - serviceType itself is generic). - So: - -in case serviceType is non generic, only serviceType will be returned. - -If implementationType is open generic, serviceType will be returned (or a partially closed - version of serviceType is returned). - -If serviceType is generic and implementationType is not, a closed version of serviceType will - be returned. - -If implementationType implements multiple (partially) closed versions of serviceType, all those - (partially) closed versions will be returned. + Creates a new based on the given + and where the will be used as-is; + no interception (using ExpressionBuilt) such as + decorators will be applied. - The (open generic) service type to match. - The implementationType to search. - A list of types. + The service type for which this instance is created. + The expression that describes the instance to be produced. + The instance for this registration. + A new that describes the expression. - - Useful extensions on . + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed - in a C#-like syntax. Ideal for reporting type names in exception messages. + Builds an expression that expresses the intent to get an instance by the current producer. A call + to this method locks the container. No new registrations can't be made after a call to this method. - The type to convert. - A human-readable string representation of that type. - Thrown when the supplied argument is a null reference. + An Expression. - + - Returns true is there is a closed version of the supplied - that is assignable from the current . This method returns true when either - itself, one of its base classes or one of its implemented interfaces is a - closed version of ; otherwise false. + Gets the collection of relationships for this instance that the container knows about. + This includes relationships between the registered type and its dependencies and relationships + between applied decorators and their dependencies. Note that types that are not newed up by the + container and properties that are injected inside a custom delegate that is registered using the + RegisterInitializer + method are unknown to the container and are not returned from this method. + Also note that this method will return an empty collection when called before the + registered type is requested from the container (or before + Verify is called). - The type to check. - The generic type definition to match. - True when type is assignable; otherwise false. + An array of instances. - + - Gets the single closed version of that the current - is assignable from. In case none or multiple matching closed types are - found, and exception is thrown. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Builds a string representation of the object graph with the current instance as root of the + graph. - The type to check. - The generic type definition to match. - The matching closed type. - Thrown when one of the arguments is a null reference. - Thrown when is not - a generic type or when none of the base classes or implemented interfaces of - Thrown when multiple matching closed generic types - are found. + A string representation of the object graph. + Thrown when this method is called before + or have been called. These calls can be + done directly and explicitly by the user on this instance, indirectly by calling + or on an instance that depends on this + instance, or by calling Verify on the container. + - + - Gets the list of closed versions of that the current - is assignable from. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + or . - The type to check. - The generic type definition to match. - A list of matching closed generic types. + The service type. - - - Defines options to control the types returned from the - GetTypesToRegister - method. For a type to be returned, it should match all the conditions described by the class's - properties. In other words, in case the searched assembly contains a generic type, that is both a - decorator and a composite, it will only be returned by GetTypesToRegister in case both - , and - are set to true. - + + Initializes a new instance of the class. + The . - - Initializes a new instance of the class. + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Gets or sets a value indicating whether decorator types should be included in the result. The default - value of this property is false. A type is considered a decorator if the type's constructor - contains a parameter of the type that exactly matches the serviceType argument, - supplied to the - GetTypesToRegister - method, or when there is a argument where T matches the - serviceType argument. + A map containing a generic argument (such as T) and the concrete type (such as Int32) that it + represents. - A boolean. - + + Implements equality. Needed for doing LINQ distinct operations. + The other to compare to. + True or false. + + + Overrides the default hash code. Needed for doing LINQ distinct operations. + An 32 bit integer. + + - Gets or sets a value indicating whether generic type definitions (types that have - TypeInfo.IsGenericTypeDefinition - set to true) - should be included in the result. The default value for this property is false. + Container controlled collections can be supplied with both Type objects or direct Registration + instances. - A boolean. - + + Will never be null. Can be open-generic. + + + Can be null. + + - Gets or sets a value indicating whether composite types should be included in the result. The default - value of this property is true. A type is considered a composite if the type's constructor - contains a parameter of IEnumerable<T>, ICollection<T>, - IList<T>, IReadOnlyCollection<T>, - IReadOnlyList<T> or T[] (array of T), where T - exactly matches the serviceType argument, supplied to the - GetTypesToRegister - method. + Gets a message that describes the current exception. - A boolean. + The error message that explains the reason for the exception, or an empty string(""). - + - Provides data for and interaction with the - ResolveUnregisteredType event of - the . An observer can check the - to see whether the unregistered type can be handled. The - method can be called to register a delegate - that allows creation of instances of the unregistered for this and future requests. + Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done + by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a + single InstanceProducer and therefore a single service type. - - Gets the unregistered service type that is currently requested. - The unregistered service type that is currently requested. - - + - Gets a value indicating whether the event represented by this instance has been handled. - This property will return true when has been called on - this instance. + Allows retrieving the concrete types of the generic type arguments of that must be used to create a + closed generic implementation of a given open generic implementation, based on on the concrete + arguments of the given closed base type. - The indication whether the event has been handled. - + - Registers a delegate that allows creation of instances of the type - expressed by the for this and future requests. The delegate - will be caches and future requests will directly call that delegate. + Helper class for building closed generic type for a given open generic type and a closed generic base. - The delegate that allows creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + Result of the GenericTypeBuilder. + + - Registers an that describes the creation of instances of the type - expressed by the for this and future requests. The delegate - will be cached and future requests will directly use that expression or the compiled delegate. + A open generic type with the concrete arguments that can be used to create a closed generic type. - - NOTE: If possible, use the Register(Registration) overload, - since this allows the analysis services to determine any configuration errors on the lifestyle of - the registration. - - The expression that describes the creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + This interface is not meant for public use. + + + Please do not use. + Do not use. + + + PLease do not use. + Do not use. + + - Registers a that describes the creation of instances of the type - expressed by the for this and future requests. The - registration will be cached and future requests will directly call unon that registration, the - expression that it generates or the delegate that gets compiled from that expression. + Allows validating an ArgumentMapping. - The registration that describes the creation of instances according to - the registration's lifestyle of the type expressed by the . - Thrown when the is a - null reference. - Thrown when the is a - not exactly of type where T equals the . - - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + - This enumeration has defines in which way the container should run the verification process. + Factory for the creation of a delegate that applies caching to the supplied + . + A factory for creating new instances. + A factory that returns cached instances. - + - Specifies that the container performs verification only, which means that it will test whether - all registrations can be constructed by iterating the registrations and letting the container - create at least one instance of each registration. An - will be thrown in case the configuration is invalid. + Instances returned from the container can be cached. The contains several + overloads of the Register method that take a Lifestyle instance as argument to define + how returned instances should be cached. The core library contains two lifestyles out of the box. By + supplying Lifestyle.Transient, the registered instance is not + cached; a new instance is returned every time it is requested or injected. By supplying + Lifestyle.Singleton instances can be cached indefinitely; only + a single instance of the registered component will be returned by that container instance. Other + lifestyles are defined in integration and extension packages. The + CreateCustom method allows defining a custom lifestyle and + the CreateHybrid method + allows creating a lifestyle that mixes multiple other lifestyles. + + This type is abstract and can be overridden to implement a custom lifestyle. + - + - Specifies that the container will run diagnostic analysis after the verification succeeded. The - container will diagnose the configuration with a subset of the available diagnostic warnings, that - are most likely an indication of a configuration mistake. A complete set of diagnostic warnings - can be retrieved by calling - Analyzer.Analyze or by viewing the - container in the Visual Studio debugger, after the verification has succeeded. + The lifestyle instance that doesn't cache instances. A new instance of the specified + component is created every time the registered service is requested or injected. + + The following example registers the SomeServiceImpl implementation for the + ISomeService service type using the Transient lifestyle: + (Lifestyle.Transient); + ]]> + Note that Transient is the default lifestyle, the previous registration can be reduced to + the following: + (); + ]]> + - + - Extension methods for enable advanced scenarios. + + The lifestyle that caches components according to the lifetime of the container's configured + scoped lifestyle. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the active scope gets disposed. + + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Scoped lifestyle: + (Lifestyle.Scoped); + ]]> + - + - Determines whether the specified container is locked making any new registrations. The container - is automatically locked when GetInstance is called for the - first time. + + The lifestyle that caches components during the lifetime of the instance + and guarantees that only a single instance of that component is created for that instance. Since + general use is to create a single Container instance for the lifetime of the application / + AppDomain, this would mean that only a single instance of that component would exist during the + lifetime of the application. In a multi-threaded applications, implementations registered using + this lifestyle must be thread-safe. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the container gets disposed. + - The container. - - true if the specified container is locked; otherwise, false. - - Thrown when is null. + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Singleton lifestyle: + (Lifestyle.Singleton); + ]]> + - - Determines whether the specified container is currently verifying its configuration. - The container. - true if the specified container is verifying; otherwise, false. - Thrown when is null. + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. - + + Gets the user friendly name of this lifestyle. + The user friendly name of this lifestyle. + + - Retrieves an item from the container stored by the given or null when no - item is stored by that key. + Gets the length of the lifestyle. Implementers must implement this property. The diagnostic + services use this value to compare lifestyles with each other to determine lifestyle + misconfigurations. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The container. - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). + The representing the length of this lifestyle. - + - Stores an item by the given in the container. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The container. - The key of the item to insert or override. - The actual item. May be null. - Thrown when either or - is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Adds an item by the given in the container by using the specified function, - if the key does not already exist. This operation is atomic. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - The Type of the item to create. - The container. - The key of the item to insert or override. - The function used to generate a value for the given key. The supplied - value of will be supplied to the function when called. - The stored item or the item from the . - Thrown when either , - or is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The registration to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The lifestyle to use when + returns true. + The lifestyle to use when + returns false. + A new hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, is open generic, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + lifestyle.GetCurrentScope(container) != null, + lifestyle, + Lifestyle.Transient); + + var mixedScopeLifestyle = Lifestyle.CreateHybrid( + () => HttpContext.Current != null, + new WebRequestLifestyle(), + mixedLifetimeTransientLifestyle); + ]]> + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The implementation type to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The scoped lifestyle to use when + returns true. + The scoped lifestyle to use when + returns false. + A new scoped hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). - - - Deprecation extensions. + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + - + - This interface method has been removed. Please call GetInstanceProducerFor instead. + Creates a custom lifestyle using the supplied delegate. - The behavior. - The consumer. - Throws an exception. + + The supplied will be called just once per registered + service. The supplied will be called by the framework + when the type is resolved for the first time, and the framework will supply the factory with a + Func<object> for creating new (transient) instances of that type (that might + have been intercepted and + initializers might have been applied). + It is the job of the to return a Func<object> + that applies the proper caching. The Func<object> that is returned by the + will be stored for that registration (every + registration will store its own Func<object> delegate) and this delegate will be + called every time the service is resolved (by calling + container.GetInstance<TService> or when that service is injected into another + type). + + The name of the lifestyle to create. The name is used to display the lifestyle + in the debugger. + A factory delegate that takes a Func<object> delegate + that will produce a transient instance and returns a delegate that returns cached instances. + A new . + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is an empty string. + + The following example shows the creation of a lifestyle that caches registered instances for 10 + minutes: + + { + TimeSpan timeout = TimeSpan.FromMinutes(10); + var syncRoot = new object(); + var expirationTime = DateTime.MinValue; + object instance = null; + + // If the application has multiple registrations using this lifestyle, each registration + // will get its own Func delegate (created here) and therefore get its own set + // of variables as defined above. + return () => + { + lock (syncRoot) + { + if (expirationTime < DateTime.UtcNow) + { + instance = instanceCreator(); + expirationTime = DateTime.UtcNow.Add(timeout); + } + + return instance; + } + }; + }); + + var container = new Container(); + + // We can reuse the created lifestyle for multiple registrations. + container.Register(customLifestyle); + container.Register(customLifestyle); + ]]> + - + - This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. - The behavior. - Type of the abstraction that is requested. - The property to check. - True when the property should be injected. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Defines the container's behavior for finding a suitable constructor for the creation of a type. - Set the ConstructorResolutionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified caching as + specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the given 's constructor that can be used by the - container to create that instance. + Creates a new instance for the given + that will create new instances instance using the supplied + with the caching as specified by this lifestyle. - Type of the implementation to find a suitable constructor for. - - The . This method never returns null. - - Thrown when no suitable constructor could be found. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Defines the container's behavior for building an expression tree for an dependency to inject, based on - the information of the consuming type the dependency is injected into. - Set the ConstructorInjectionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - - Verifies the specified . - Contextual information about the consumer where the built dependency is - injected into. - - Thrown when the type of the target supplied with - the supplied cannot be used for auto wiring. - Thrown when the supplied argument is a null reference. - - + - Gets the for the - Target of the supplied . + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. - Contextual information about the consumer where the built dependency is - injected into. - The indication whether the method should return null or throw - an exception when the type is not registered. - An that describes the intend of creating that - Target. This method never returns null. - Thrown when the argument is a null reference. + The concrete type that will be registered. + The instance for which a + must be created. + A new or cached instance. + Thrown when is a null + reference (Nothing in VB). - + - Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle - is explicitly supplied. - Set the LifestyleSelectionBehavior - property of the container's property to change the default behavior - of the container. By default, when no lifestyle is explicitly supplied, the - Transient lifestyle is used. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - - Selects the lifestyle based on the supplied type information. - Type of the implementation to that is registered. - The suited for the given type. - Thrown when either one of the arguments is a null reference. - - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterResolveInterceptor - method that takes this delegate. This type contains contextual information about a resolved type and it - allows the user to examine the given instance to decide whether the - should be applied or not. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + This method might fail when run in a partial trust sandbox when + is an internal type. - The or null (Nothing in VB) when the instance producer is - unknown. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + This overload has been deprecated. Please call + instead. - /// The . + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterInitializer - overload that takes this delegate. This type contains contextual information about the creation and it - allows the user to examine the given instance to decide whether the instance should be initialized or - not. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The delegate that will be responsible for creating new instances. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets a null reference. This property has been deprecated. + When overridden in a derived class, + creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - The null (Nothing in VB). + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Gets the that is responsible for the initialization of the created - instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - /// The . + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Contains data that can be used to initialize a created instance. This data includes the actual - created and the information about the created instance. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. An execution context scope flows with the logical execution context. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + The following example shows the usage of the ExecutionContextScopeLifestyle class: + (Lifestyle.Scoped); + + using (AsyncScopedLifestyle.BeginScope(container)) + { + var instance1 = container.GetInstance(); + // ... + } + ]]> + - - Initializes a new instance of the struct. - The that contains contextual information - about the created instance. - The created instance. - - - Gets the with contextual information about the - created instance. - The . - - - Gets the created instance. - The created instance. - - - Returns the hash code for this instance. - A 32-bit signed integer that is the hash code for this instance. - - - Indicates whether this instance and a specified object are equal. - Another object to compare to. - True if the current object is equal to the other parameter; otherwise, false. + + Initializes a new instance of the class. - + - Indicates whether the current object is equal to another object of the same type. + Begins a new scope for the given . - An object to compare with this object. - True if the current object is equal to the other parameter; otherwise, false. + The container. + A new instance. + + Thrown when the is a null reference. - + - Indicates whether the values of two specified objects are equal. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. - The first object to compare. - The second object to compare. - True if a and b are equal; otherwise, false. + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Indicates whether the values of two specified objects are - not equal. + This lifestyle can be used to implement ambient context-less scoping in Simple Injector. This lifestyle + can be set as DefaultScopedLifestyle and later used via Lifestyle.Scoped to register scoped instances, + while instances are resolved via Scope.GetInstance. - The first object to compare. - The second object to compare. - True if a and b are not equal; otherwise, false. - + - Defines the container's behavior for selecting properties to inject during the creation of a type. - Set the PropertySelectionBehavior - property of the container's property to change the default behavior - of the container. By default, no properties will be injected by the container. + Forwards CreateRegistration calls to the lifestyle that is returned from the registered + container.Options.LifestyleSelectionBehavior. - + - Determines whether a property should be injected by the container upon creation of its type. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. - - The type being created for which the property should be injected. Note that this might a - different type than the type on which the property is declared (which might be a base class). - The property to check. - True when the property should be injected. + + The following example shows the usage of the ThreadScopedLifestyle class: + (Lifestyle.Scoped); + + using (container.BeginLifetimeScope()) + { + var instance1 = container.GetInstance(); + + // This call will return the same instance. + var instance2 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); + + // Create a nested scope. + using (container.BeginLifetimeScope()) + { + // A nested scope gets its own instance. + var instance3 = container.GetInstance(); + + Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); + + // This call will return the same instance. + var instance4 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); + } + } + ]]> + - - - A known relationship defines a relationship between two types. The Diagnostics Debug View uses this - information to spot possible misconfigurations. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . - - Initializes a new instance of the class. - The implementation type of the parent type. - The lifestyle of the parent type. - The type that the parent depends on (it is injected into the parent). - - - Gets the implementation type of the parent type of the relationship. - The implementation type of the parent type of the relationship. - - - Gets the lifestyle of the parent type of the relationship. - The lifestyle of the parent type of the relationship. - - - Gets the type that the parent depends on (it is injected into the parent). - The type that the parent depends on. + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + - - Serves as a hash function for a particular type. - A hash code for the current . + + + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Determines whether the specified is equal to the current - . + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. - The object to compare with the current object. - True if the specified is equal to the current - ; otherwise, false. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterConditional + overload that takes this delegate. This type contains information about the open generic service that + is about to be created and it allows the user to examine the given instance to decide whether this + implementation should be created or not. + + Please see the + Register + method for more information. + - - Initializes a new instance of the struct. - The scope factory. - The container. + + Gets the closed generic service type that is to be created. + The closed generic service type. - - Gets the lazily initialized Scope of the current LazyScope instance. - The current Scope or null. + + Gets the closed generic implementation type that will be created by the container. + The implementation type. - - - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. - - Implementation type. + + Gets a value indicating whether a previous Register registration has already + been applied for the given . + The indication whether the event has been handled. - + - Initializes a new instance of the - struct. - The registration. - - - Gets the lazily initialized instance for the of the current LazyScopedRegistration. - The scope that is used to retrieve the instance. - The cached instance. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + + The or null. - + - Hooks into the building process and adds a decorator if needed. + A Registration implements lifestyle based caching for a single service and allows building an + that describes the creation of the service. + + implementations create a new Registration instance for each registered + service type. s returned from the + BuildExpression method can be + intercepted by any event registered with , have + initializers + applied, and the caching particular to its lifestyle have been applied. Interception using the + Container.ExpressionBuilt will not + be applied in the Registration, but will be applied in . + + See the documentation for an example. + - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diaal. + Initializes a new instance of the class. + The this that created this registration. + The instance for this registration. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - Gets the lifestyles that causes the registrations to be conflicting. - instances. + + Gets the type that this instance will create. + The type that this instance will create. - - Gets the implementation type that the affected registrations map to. - A . + + Gets the this that created this registration. + The this that created this registration. - - Gets the registration that caused this warning. - /// An . + + Gets the instance for this registration. + The instance for this registration. - + + Gets or sets a value indicating whether this registration object contains a user + supplied instanceCreator factory delegate. + + - Gets the list of registrations that are in conflict with the . + Builds a new with the correct caching (according to the specifications of + its ) applied. - A list of instances. + An . - + - Entry point for doing diagnostic analysis on instances. + Gets the list of instances. Note that the list is only available + after calling . - - The following example shows the usage of the Analyzer class: - - + A new array containing the instances. - + - Analyzes the supplied instance. + Initializes an already created instance and applies properties and initializers to that instance. - The container instance to analyze. - A collection of sub types that describe the diagnostic - warnings and messages. + + This method is especially useful in integration scenarios where the given platform is in control + of creating certain types. By passing the instance created by the platform to this method, the + container is still able to apply any properties (as defined using a custom + ) and by applying any initializers. + + The instance to initialize. + Thrown when is a null reference + (Nothing in VB). + Thrown when the supplied is not + of type . - + - Diagnostic result for a warning about a concrete type that was not registered explicitly and was not - resolved using unregistered type resolution, but was created by the container using the transient - lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Suppressing the supplied for the given registration. + The . + The justification of why the warning must be suppressed. + Thrown when is a null + reference. + Thrown when either is an + empty string or when is not a valid value of . + - - Gets a collection of instances that describe all - container-registered dependencies for the given component. - List of objects. - - + - A hierarchical group of . + Builds a delegate for the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers + that are applicable to the given (if any). + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + A delegate. + Thrown when one of the arguments is a null reference. - + - Gets the base that describes the service types of its - . The value often be either (in case this is a - root group) or a partial generic type to allow hierarchical grouping of a large number of related - generic types. + Builds a delegate for the creation of . + The returned might be intercepted by a + Container.ExpressionBuilding event, + and the creation of the will have been wrapped with a + delegate that executes the registered + initializers + that are applicable to the given (if any). - The . - - - Gets the friendly name of the group. - The name. - - - Gets the description of the group. - The description. - - - Gets the diagnostic type of all grouped instances. - The . - - - Gets the parent or null (Nothing in VB) when this is the - root group. - The . - - - Gets the collection of child s. - A collection of elements. + A delegate. + Thrown when one of the arguments is a null reference. - - Gets the collection of instances. - /// A collection of elements. + + + Builds an that describes the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers that are + applicable to the given (if any). + + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + An . + Thrown when one of the arguments is a null reference. - + - Base class for types that hold information about a single diagnostic message or warning for a - particular type or part of the configuration. + Builds an that describes the creation of . + The returned might be intercepted + by a Container.ExpressionBuilding + event, and the creation of the will have been wrapped with + a delegate that executes the registered + initializers that are applicable + to the InstanceProducer's ServiceType (if any). + An . + Thrown when one of the arguments is a null reference. - - Gets the severity of this result. - The . + + Implements a cache for implementations. + + is thread-safe can be used over multiple threads concurrently, but note that the + cached instances might not be thread-safe. + - - Gets the diagnostic type of this result. - The . + + Initializes a new instance of the class. - - Gets the service type to which this warning is related. - A . + + Initializes a new instance of the class. + The container instance that the scope belongs to. - - Gets the description of the diagnostic result. - A with the description. + + Gets the container instance that this scope belongs to. + The instance. - - Gets the documentation URL of the diagnostic result. - A with the URL. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - - Gets the hierarchical group to which this diagnostic result belongs. - The . + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - + - Specifies the list of severity levels that diagnostic results can have. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Information messages and tips about the configuration. - - - Warning messages that are likely to cause problems in your application. - - + - Specifies the list of diagnostic types that are currently supported by the diagnostic - . Note that new diagnostic types might be added in future versions. - For more information, please read the - Diagnosing your configuration using the Diagnostic - Services wiki documentation. + Adds the to the list of items that will get disposed when the + scope ends. + + Instances that are registered for disposal, will be disposed in opposite order of registration and + they are guaranteed to be disposed when is called (even when + exceptions are thrown). This mimics the behavior of the C# and VB using statements, + where the method is called inside the finally block. + + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - + - Diagnostic type that warns about - a concrete type that was not registered explicitly and was not resolved using unregistered type - resolution, but was created by the container using the transient lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Retrieves an item from the scope stored by the given or null when no + item is stored by that key. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . + + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + + Stores an item by the given in the scope. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. + + The key of the item to insert or override. + The actual item. May be null. + Thrown when paramref name="key"/> is a null reference + (Nothing in VB). + + - Diagnostic type that warns when a - component depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Returns the list of instances that will be disposed of when this + instance is being disposed. The list contains scoped instances that are cached in this instance, + and instances explicitly registered for disposal using . The instances are returned + in order of creation/registration. When Scope.Dispose is called, the scope will ensure + is called on each instance in this list. The instance will be disposed in opposite + order as they appear in the list. + The list of instances that will be disposed of when this + instance is being disposed. + + + Releases all instances that are cached by the object. - + - Diagnostic type that warns when a - component depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Releases all instances that are cached by the object. + False when only unmanaged resources should be released. - + - Diagnostic type that warns when a component depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly + or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly + defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal + or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create + more than one instance of such registered type. - + - Diagnostic type that warns when multiple registrations map to the same component and - lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Gets the scoped lifestyle that allows Scoped registrations to be resolved direclty from the + by calling . This allows multiple + scopes to be active and overlap within the same logical context, such as a single thread, or an + asynchronous context. - + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. + + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Signals the lifestyle whether instances should be + disposed or not. + Thrown when is null (Nothing in VB) + or an empty string. + + + Gets the length of the lifestyle. + The representing the length of this lifestyle. + + - Diagnostic type that warns when a component is registered as transient, while implementing - . - For more information, see: https://simpleinjector.org/diadt. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The instance. + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when multiple registrations exist that map to the same component but - with different lifestyles, which will cause the component to be cached in different -possibly - incompatible- ways. - For more information, see: https://simpleinjector.org/diaal. + Adds the to the list of items that will get disposed when the + scope ends. + The instance. + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic result for a warning about a component that is registered as transient, but implements - . - For more information, see: https://simpleinjector.org/diadt. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result for a warning about a - component that depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method should never return null. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result that warns about a - component that depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. - - Gets the instance that describes the current relationship between the checked component - and the short-circuited dependency. - The . - - + - Gets the collection of registrations that have the component's current dependency as - implementation type, but have a lifestyle that is different than the current dependency. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - A collection of instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. - + - Diagnostic result that warns about a component that depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + By default, this method calls the method and invokes the + returned delegate. This method can be overridden to provide an optimized way for getting the + current scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the created type. - A . - - - Gets the list of registrations that are dependencies of the . - A collection of instances. + + Internal helper for string resources. - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Contains contextual information for creating an implementation type. + + Please see the + Register + method for more information. + - - Gets the lifestyle on which instances are torn. - A . - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the list of registrations that are affected by this warning. - A list of instances. + + Gets the closed generic service type that is to be created. + The closed generic service type. - + - A map containing a generic argument (such as T) and the concrete type (such as Int32) that it - represents. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + The or null. - - Implements equality. Needed for doing LINQ distinct operations. - The other to compare to. - True or false. - - - Overrides the default hash code. Needed for doing LINQ distinct operations. - An 32 bit integer. - - + - Container controlled collections can be supplied with both Type objects or direct Registration - instances. + Returns a list of base types and interfaces of implementationType that either + equal to serviceType or are closed or partially closed version of serviceType (in case + serviceType itself is generic). + So: + -in case serviceType is non generic, only serviceType will be returned. + -If implementationType is open generic, serviceType will be returned (or a partially closed + version of serviceType is returned). + -If serviceType is generic and implementationType is not, a closed version of serviceType will + be returned. + -If implementationType implements multiple (partially) closed versions of serviceType, all those + (partially) closed versions will be returned. + The (open generic) service type to match. + The implementationType to search. + A list of types. - - Will never be null. Can be open-generic. + + Useful extensions on . - - Can be null. + + + Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed + in a C#-like syntax. Ideal for reporting type names in exception messages. + + The type to convert. + A human-readable string representation of that type. + Thrown when the supplied argument is a null reference. - + - Gets a message that describes the current exception. + Returns true is there is a closed version of the supplied + that is assignable from the current . This method returns true when either + itself, one of its base classes or one of its implemented interfaces is a + closed version of ; otherwise false. - The error message that explains the reason for the exception, or an empty string(""). + The type to check. + The generic type definition to match. + True when type is assignable; otherwise false. - + - Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done - by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a - single InstanceProducer and therefore a single service type. + Gets the single closed version of that the current + is assignable from. In case none or multiple matching closed types are + found, and exception is thrown. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + The matching closed type. + Thrown when one of the arguments is a null reference. + Thrown when is not + a generic type or when none of the base classes or implemented interfaces of + are closed-versions of . + Thrown when multiple matching closed generic types + are found. - + - Allows retrieving the concrete types of the generic type arguments of that must be used to create a - closed generic implementation of a given open generic implementation, based on on the concrete - arguments of the given closed base type. + Gets the list of closed versions of that the current + is assignable from. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + A list of matching closed generic types. - + - Helper class for building closed generic type for a given open generic type and a closed generic base. + Defines options to control the types returned from the + GetTypesToRegister + method. For a type to be returned, it should match all the conditions described by the class's + properties. In other words, in case the searched assembly contains a generic type, that is both a + decorator and a composite, it will only be returned by GetTypesToRegister in case both + , and + are set to true. - - Result of the GenericTypeBuilder. + + Initializes a new instance of the class. - + - A open generic type with the concrete arguments that can be used to create a closed generic type. + Gets or sets a value indicating whether decorator types should be included in the result. The default + value of this property is false. A type is considered a decorator if the type's constructor + contains a parameter of the type that exactly matches the serviceType argument, + supplied to the + GetTypesToRegister + method, or when there is a argument where T matches the + serviceType argument. + A boolean. - - This interface is not meant for public use. - - - Please do not use. - Do not use. - - - PLease do not use. - Do not use. + + + Gets or sets a value indicating whether generic type definitions (types that have + TypeInfo.IsGenericTypeDefinition + set to true) + should be included in the result. The default value for this property is false. + + A boolean. - + - Allows validating an ArgumentMapping. + Gets or sets a value indicating whether composite types should be included in the result. The default + value of this property is true. A type is considered a composite if the type's constructor + contains a parameter of IEnumerable<T>, ICollection<T>, + IList<T>, IReadOnlyCollection<T>, + IReadOnlyList<T> or T[] (array of T), where T + exactly matches the serviceType argument, supplied to the + GetTypesToRegister + method. + A boolean. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. An execution context scope flows with the logical execution context. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Provides data for and interaction with the + ResolveUnregisteredType event of + the . An observer can check the + to see whether the unregistered type can be handled. The + method can be called to register a delegate + that allows creation of instances of the unregistered for this and future requests. - - The following example shows the usage of the ExecutionContextScopeLifestyle class: - (Lifestyle.Scoped); - - using (AsyncScopedLifestyle.BeginScope(container)) - { - var instance1 = container.GetInstance(); - // ... - } - ]]> - - - Initializes a new instance of the class. + + Gets the unregistered service type that is currently requested. + The unregistered service type that is currently requested. - + - Begins a new scope for the given . + Gets a value indicating whether the event represented by this instance has been handled. + This property will return true when has been called on + this instance. - The container. - A new instance. - - Thrown when the is a null reference. + The indication whether the event has been handled. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Registers a delegate that allows creation of instances of the type + expressed by the for this and future requests. The delegate + will be caches and future requests will directly call that delegate. - The container for which the delegate gets created. - A delegate. This method never returns null. + The delegate that allows creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Forwards CreateRegistration calls to the lifestyle that is returned from the registered - container.Options.LifestyleSelectionBehavior. + Registers an that describes the creation of instances of the type + expressed by the for this and future requests. The delegate + will be cached and future requests will directly use that expression or the compiled delegate. + + NOTE: If possible, use the Register(Registration) overload, + since this allows the analysis services to determine any configuration errors on the lifestyle of + the registration. + + The expression that describes the creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Registers a that describes the creation of instances of the type + expressed by the for this and future requests. The + registration will be cached and future requests will directly call unon that registration, the + expression that it generates or the delegate that gets compiled from that expression. - - The following example shows the usage of the ThreadScopedLifestyle class: - (Lifestyle.Scoped); - - using (container.BeginLifetimeScope()) - { - var instance1 = container.GetInstance(); - - // This call will return the same instance. - var instance2 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); - - // Create a nested scope. - using (container.BeginLifetimeScope()) - { - // A nested scope gets its own instance. - var instance3 = container.GetInstance(); - - Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); - - // This call will return the same instance. - var instance4 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); - } - } - ]]> - + The registration that describes the creation of instances according to + the registration's lifestyle of the type expressed by the . + Thrown when the is a + null reference. + Thrown when the is a + not exactly of type where T equals the . + + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + This enumeration has defines in which way the container should run the verification process. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - - - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Specifies that the container performs verification only, which means that it will test whether + all registrations can be constructed by iterating the registrations and letting the container + create at least one instance of each registration. An + will be thrown in case the configuration is invalid. - The container for which the delegate gets created. - A delegate. This method never returns null. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Specifies that the container will run diagnostic analysis after the verification succeeded. The + container will diagnose the configuration with a subset of the available diagnostic warnings, that + are most likely an indication of a configuration mistake. A complete set of diagnostic warnings + can be retrieved by calling + Analyzer.Analyze or by viewing the + container in the Visual Studio debugger, after the verification has succeeded. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. diff --git a/packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.dll b/packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.dll new file mode 100644 index 0000000000..668ce793e9 Binary files /dev/null and b/packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.dll differ diff --git a/packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.xml b/packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.xml similarity index 82% rename from packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.xml rename to packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.xml index 289dc29ace..de64ac09da 100644 --- a/packages/SimpleInjector.4.0.12/lib/netstandard1.3/SimpleInjector.xml +++ b/packages/SimpleInjector.4.3.0/lib/netstandard1.3/SimpleInjector.xml @@ -34,637 +34,1234 @@ Basic) if no inner exception is specified. - + - The container. Create an instance of this type for registration of dependencies. + Extension methods for enable advanced scenarios. - - - Thread-safety: - Resolving instances can be done safely from multiple threads concurrently, but registration needs to - be done from one single thread. - - - It is therefore safe to call , , - GetService, and - and anything related to resolving instances from multiple thread - concurrently. It is however unsafe to call - RegisterXXX, - , , , - or anything related to registering from multiple threads concurrently. - - - Methods for batch registration. - Methods for registration of collections. - Methods for conditional registrations. - - These conditional registration methods lack a Func{PredicateContext, TService} predicate - method. This is deliberate, because would force the factory to be registered as transient, forcing - the whole parent structure to become transient as well. Besides this, it would blind the diagnostic - system, because it will stop at the delegate, instead of being able to analyze the object graph as - a whole. - - Methods for registration. - Methods for registration of decorators. - Methods for resolving instances. - Methods for verifying the container. - - - Initializes a new instance of the class. - - - Gets the container options. - The instance for this container. - + - Gets a value indicating whether the container is currently being verified on the current thread. + Determines whether the specified container is locked making any new registrations. The container + is automatically locked when GetInstance is called for the + first time. - True in case the container is currently being verified on the current thread; otherwise - false. + The container. + + true if the specified container is locked; otherwise, false. + + Thrown when is null. - - - Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is - returned from the registered container.Options.LifestyleSelectionBehavior. - + + Determines whether the specified container is currently verifying its configuration. + The container. + true if the specified container is verifying; otherwise, false. + Thrown when is null. - + - Returns an array with the current registrations. This list contains all explicitly registered - types, and all implicitly registered instances. Implicit registrations are all concrete - unregistered types that have been requested, all types that have been resolved using - unregistered type resolution (using the event), and - requested unregistered collections. Note that the result of this method may change over time, - because of these implicit registrations. + Retrieves an item from the container stored by the given or null when no + item is stored by that key. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . - An array of instances. + The container. + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - + - Returns an array with the current registrations for root objects. Root objects are registrations - that are in the root of the object graph, meaning that no other registration is depending on it. + Stores an item by the given in the container. - - This method has a performance characteristic of O(n). Prevent from calling this in a performance - critical path of the application. - - - This list contains the root objects of all explicitly registered types, and all implicitly - registered instances. Implicit registrations are all concrete unregistered types that have been - requested, all types that have been resolved using unregistered type resolution (using the - event), and requested unregistered collections. Note that - the result of this method may change over time, because of these implicit registrations. - - - Note: This method is not guaranteed to always return the same - instance for a given registration. It will however either - always return a producer that is able to return the expected instance. Because of this, do not - compare sets of instances returned by different calls to - by reference. The way of comparing lists is by the actual type. The type of each instance is - guaranteed to be unique in the returned list. - + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. - An array of instances. - Thrown when this method is called before - has been successfully called. - - - Determines whether the specified System.Object is equal to the current System.Object. - - The System.Object to compare with the current System.Object. - - True if the specified System.Object is equal to the current System.Object; otherwise, false. - - - - Returns the hash code of the current instance. - The hash code of the current instance. + The container. + The key of the item to insert or override. + The actual item. May be null. + Thrown when either or + is a null reference (Nothing in VB). - + - Returns a that represents the . + Adds an item by the given in the container by using the specified function, + if the key does not already exist. This operation is atomic. - - A that represents the . - - - - Gets the of the current instance. - The instance that represents the exact runtime - type of the current instance. - - - Releases all instances that are cached by the object. - - - Prevents any new registrations to be made to the container. - - - Releases all instances that are cached by the object. - True for a normal dispose operation; false to finalize the handle. + The Type of the item to create. + The container. + The key of the item to insert or override. + The function used to generate a value for the given key. The supplied + value of will be supplied to the function when called. + The stored item or the item from the . + Thrown when either , + or is a null reference (Nothing in VB). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with container's default lifestyle (which is transient by default). - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Registers all concrete, non-generic, public and internal types in the given set of - that implement the given - with the supplied . - Decorators and - generic type definitions - will be excluded from registration, while - composites are included. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The definition of the open generic type. - A list of assemblies that will be searched. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null + The container. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when is not - an open generic type. - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + + Deprecation extensions. + + - Registers all supplied based on the closed-generic version - of the given with the transient lifestyle. + This interface method has been removed. Please call GetInstanceProducerFor instead. - The definition of the open generic type. - A list types to be registered. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + The consumer. + Throws an exception. - + - Registers all supplied based on the closed-generic version - of the given with the given . + This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. - The definition of the open generic type. - A list types to be registered. - The lifestyle to register instances with. - Thrown when one of the arguments contain a null - reference (Nothing in VB). - Thrown when is not - an open generic type or when one of the supplied types from the - collection does not derive from - . - Thrown when the given set of - contain multiple types that implement the same - closed generic version of the given . + The behavior. + Type of the abstraction that is requested. + The property to check. + True when the property should be injected. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. + Defines the container's behavior for finding a suitable constructor for the creation of a type. + Set the ConstructorResolutionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Gets the given 's constructor that can be used by the + container to create that instance. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). + Type of the implementation to find a suitable constructor for. + + The . This method never returns null. + + Thrown when no suitable constructor could be found. - + - Registers all concrete, non-generic types (both public and internal) that are defined in the given - set of and that implement the given - with a default lifestyle and register them as a collection of . - Unless overridden using a custom - LifestyleSelectionBehavior, the - default lifestyle is Transient. - Composites, - decorators and - generic type definitions - will be excluded from registration. + Defines the container's behavior for building an expression tree for an dependency to inject, based on + the information of the consuming type the dependency is injected into. + Set the ConstructorInjectionBehavior + property of the container's property to change the default behavior + of the container. - The element type of the collections to register. This can be either - a non-generic, closed-generic or open-generic type. - A list of assemblies that will be searched. - Thrown when one of the supplied arguments contain a null - reference (Nothing in VB). - + + Verifies the specified . + Contextual information about the consumer where the built dependency is + injected into. + + Thrown when the type of the target supplied with + the supplied cannot be used for auto wiring. + Thrown when the supplied argument is a null reference. + + - Returns all concrete non-generic types that are located in the supplied - and implement or inherit from the supplied . - can be an open-generic type. + Gets the for the + Target of the supplied . - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). + Contextual information about the consumer where the built dependency is + injected into. + The indication whether the method should return null or throw + an exception when the type is not registered. + An that describes the intend of creating that + Target. This method never returns null. + Thrown when the argument is a null reference. - + - Returns all concrete types that are located in the supplied - and implement or inherit from the supplied and match the specified - . can be an open-generic type. + Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle + is explicitly supplied. + Set the LifestyleSelectionBehavior + property of the container's property to change the default behavior + of the container. By default, when no lifestyle is explicitly supplied, the + Transient lifestyle is used. - - Use this method when you need influence the types that are registered using - Register. - The Register overloads that take a collection of - objects use this method internally to get the list of types that need to be registered. Instead of - calling such overload, you can call an overload that takes a list of objects - and pass in a filtered result from this GetTypesToRegister method. - ).Assembly }; - var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; - var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) - .Where(type => !type.IsPublic); - - container.Register(typeof(ICommandHandler<>), types); - ]]> - This example calls the GetTypesToRegister method to request a list of concrete implementations - of the ICommandHandler<T> interface from the assembly of that interface. After that - all internal types are filtered out. This list is supplied to the - Register(Type, IEnumerable<Type>) - overload to finish the registration. - - The base type or interface to find derived types for. This can be both - a non-generic and open-generic type. - A list of assemblies that will be searched. - The options. - A collection of types. - Thrown when one of the arguments contain a null reference - (Nothing in VB). - + + Selects the lifestyle based on the supplied type information. + Type of the implementation to that is registered. + The suited for the given type. + Thrown when either one of the arguments is a null reference. + + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterResolveInterceptor + method that takes this delegate. This type contains contextual information about a resolved type and it + allows the user to examine the given instance to decide whether the + should be applied or not. - The interface or base type that can be used to retrieve instances. - The container-uncontrolled collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - + - Registers a collection of singleton elements of type . + Gets the that is responsible for the initialization of the created + instance. - The interface or base type that can be used to retrieve instances. - The collection to register. - - Thrown when this container instance is locked and can not be altered, or when a - for has already been registered. - - Thrown when is a null - reference. - Thrown when one of the elements of - is a null reference. + The or null (Nothing in VB) when the instance producer is + unknown. - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + /// The . - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterInitializer + overload that takes this delegate. This type contains contextual information about the creation and it + allows the user to examine the given instance to decide whether the instance should be initialized or + not. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets a null reference. This property has been deprecated. - The base type or interface for elements in the collection. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element, a generic type definition, or the is - not assignable from one of the given elements. - + The null (Nothing in VB). - + - Registers a collection of , whose instances will be resolved lazily - each time the resolved collection of is enumerated. - The underlying collection is a stream that will return individual instances based on their - specific registered lifestyle, for each call to . - The order in which the types appear in the collection is the exact same order that the items were - registered, i.e the resolved collection is deterministic. + Gets the that is responsible for the initialization of the created + instance. - The base type or interface for elements in the collection. This can be - an a non-generic type, closed generic type or generic type definition. - The collection of objects whose instances - will be requested from the container. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Thrown when contains a null - (Nothing in VB) element or when is not assignable from any of the - service types supplied by the given instances. - + /// The . - + - Registers a dynamic (container uncontrolled) collection of elements of type - . A call to will return the - itself, and updates to the collection will be - reflected in the result. If updates are allowed, make sure the collection can be iterated safely - if you're running a multi-threaded application. + Contains data that can be used to initialize a created instance. This data includes the actual + created and the information about the created instance. - The base type or interface for elements in the collection. - The collection of items to register. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - Thrown when represents an - open generic type. - + + Initializes a new instance of the struct. + The that contains contextual information + about the created instance. + The created instance. + + + Gets the with contextual information about the + created instance. + The . + + + Gets the created instance. + The created instance. + + + Returns the hash code for this instance. + A 32-bit signed integer that is the hash code for this instance. + + + Indicates whether this instance and a specified object are equal. + Another object to compare to. + True if the current object is equal to the other parameter; otherwise, false. + + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the current object is equal to another object of the same type. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + An object to compare with this object. + True if the current object is equal to the other parameter; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are equal. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The lifestyle that specifies how the returned instance will be cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - - Thrown when one of the arguments is a null reference (Nothing in VB). - - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are equal; otherwise, false. - + - Conditionally registers that a new instance of will be - returned every time a is requested (transient) and where the - supplied returns true. The predicate will only be evaluated a finite - number of times; the predicate is unsuited for making decisions based on runtime conditions. + Indicates whether the values of two specified objects are + not equal. - - This method uses the container's - LifestyleSelectionBehavior to select - the exact lifestyle for the specified type. By default this will be - Transient. - - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. - + The first object to compare. + The second object to compare. + True if a and b are not equal; otherwise, false. - + - Conditionally registers that an instance of will be - returned every time a is requested and where the supplied - returns true. The instance is cached according to the supplied - . The predicate will only be evaluated a finite number of times; the - predicate is unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - The actual type that will be returned when requested. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when and - are not a generic type or when - is a partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - - + + Initializes a new instance of the struct. + The scope factory. + The container. + + + Gets the lazily initialized Scope of the current LazyScope instance. + The current Scope or null. + + - Conditionally registers that an instance of the type returned from - will be returned every time a - is requested and where the supplied - returns true. The instance is cached according to the supplied - . Both the and - will only be evaluated a finite number of times; - they unsuited for making decisions based on runtime conditions. + This is an internal type. Only depend on this type when you want to be absolutely sure a future + version of the framework will break your code. - The base type or interface to register. This can be an open-generic type. - A factory that allows building Type objects that define the - implementation type to inject, based on the given contextual information. The delegate is allowed - to return (partially) open-generic types. - The lifestyle that defines how returned instances are cached. - The predicate that determines whether the registration can be applied for - the requested service type. This predicate can be used to build a fallback mechanism where - multiple registrations for the same service type are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is a - partially-closed generic type. - - - Thrown when this container instance is locked and can not be altered. - + Implementation type. - + - Conditionally registers that will be used every time a - is requested and where the supplied - returns true. The predicate will only be evaluated a finite number of times; the predicate is - unsuited for making decisions based on runtime conditions. + Initializes a new instance of the + struct. + The registration. + + + Gets the lazily initialized instance for the of the current LazyScopedRegistration. + The scope that is used to retrieve the instance. + The cached instance. + + + + Defines the container's behavior for selecting properties to inject during the creation of a type. + Set the PropertySelectionBehavior + property of the container's property to change the default behavior + of the container. By default, no properties will be injected by the container. - The base type or interface to register. This can be an open-generic type. - The instance to register. - The predicate that determines whether the - can be applied for the requested service type. This predicate - can be used to build a fallback mechanism where multiple registrations for the same service type - are made. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is open generic or - is not assignable to . - - Thrown when this container instance is locked and can not be altered. - - - - Occurs when an instance of a type is requested that has not been registered explicitly, allowing - resolution of unregistered types before the container tries to create the type. - - - - The event is called by the container every time an - unregistered type is requested for the first time, allowing a developer to do unregistered type - resolution. By calling the - Register method on the + + + Determines whether a property should be injected by the container upon creation of its type. + + + The type being created for which the property should be injected. Note that this might a + different type than the type on which the property is declared (which might be a base class). + The property to check. + True when the property should be injected. + + + + A known relationship defines a relationship between two types. The Diagnostics Debug View uses this + information to spot possible misconfigurations. + + + + Initializes a new instance of the class. + The implementation type of the parent type. + The lifestyle of the parent type. + The type that the parent depends on (it is injected into the parent). + + + Gets the implementation type of the parent type of the relationship. + The implementation type of the parent type of the relationship. + + + Gets the lifestyle of the parent type of the relationship. + The lifestyle of the parent type of the relationship. + + + Gets the type that the parent depends on (it is injected into the parent). + The type that the parent depends on. + + + Serves as a hash function for a particular type. + A hash code for the current . + + + + Determines whether the specified is equal to the current + . + + The object to compare with the current object. + True if the specified is equal to the current + ; otherwise, false. + + + + The container. Create an instance of this type for registration of dependencies. + + + + Thread-safety: + Resolving instances can be done safely from multiple threads concurrently, but registration needs to + be done from one single thread. + + + It is therefore safe to call , , + GetService, and + and anything related to resolving instances from multiple thread + concurrently. It is however unsafe to call + RegisterXXX, + , , , + or anything related to registering from multiple threads concurrently. + + + Methods for batch registration. + Methods for registration of collections. + Methods for conditional registrations. + + These conditional registration methods lack a Func{PredicateContext, TService} predicate + method. This is deliberate, because would force the factory to be registered as transient, forcing + the whole parent structure to become transient as well. Besides this, it would blind the diagnostic + system, because it will stop at the delegate, instead of being able to analyze the object graph as + a whole. + + Methods for registration. + Methods for registration of decorators. + Methods for resolving instances. + Methods for verifying the container. + + + Initializes a new instance of the class. + + + Gets the container options. + The instance for this container. + + + + Gets a value indicating whether the container is currently being verified on the current thread. + + True in case the container is currently being verified on the current thread; otherwise + false. + + + + Gets the intermediate lifestyle that forwards CreateRegistration calls to the lifestyle that is + returned from the registered container.Options.LifestyleSelectionBehavior. + + + + + Returns an array with the current registrations. This list contains all explicitly registered + types, and all implicitly registered instances. Implicit registrations are all concrete + unregistered types that have been requested, all types that have been resolved using + unregistered type resolution (using the event), and + requested unregistered collections. Note that the result of this method may change over time, + because of these implicit registrations. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + + + + Returns an array with the current registrations for root objects. Root objects are registrations + that are in the root of the object graph, meaning that no other registration is depending on it. + + + + This method has a performance characteristic of O(n). Prevent from calling this in a performance + critical path of the application. + + + This list contains the root objects of all explicitly registered types, and all implicitly + registered instances. Implicit registrations are all concrete unregistered types that have been + requested, all types that have been resolved using unregistered type resolution (using the + event), and requested unregistered collections. Note that + the result of this method may change over time, because of these implicit registrations. + + + Note: This method is not guaranteed to always return the same + instance for a given registration. It will however either + always return a producer that is able to return the expected instance. Because of this, do not + compare sets of instances returned by different calls to + by reference. The way of comparing lists is by the actual type. The type of each instance is + guaranteed to be unique in the returned list. + + + An array of instances. + Thrown when this method is called before + has been successfully called. + + + Determines whether the specified System.Object is equal to the current System.Object. + + The System.Object to compare with the current System.Object. + + True if the specified System.Object is equal to the current System.Object; otherwise, false. + + + + Returns the hash code of the current instance. + The hash code of the current instance. + + + + Returns a that represents the . + + + A that represents the . + + + + Gets the of the current instance. + The instance that represents the exact runtime + type of the current instance. + + + Releases all instances that are cached by the object. + + + Prevents any new registrations to be made to the container. + + + Releases all instances that are cached by the object. + True for a normal dispose operation; false to finalize the handle. + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with container's default lifestyle (which is transient by default). + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + An assembly that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with the supplied . + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the transient lifestyle. + + The definition of the open generic type. + A list types to be registered. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all supplied based on the closed-generic version + of the given with the given . + + The definition of the open generic type. + A list types to be registered. + The lifestyle to register instances with. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type or when one of the supplied types from the + collection does not derive from + . + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic, public and internal types in the given set of + that implement the given + with lifestyle. + Decorators and + generic type definitions + will be excluded from registration, while + composites are included. + + The definition of the open generic type. + A list of assemblies that will be searched. + Thrown when one of the arguments contain a null + reference (Nothing in VB). + Thrown when is not + an open generic type. + Thrown when the given set of + contain multiple types that implement the same + closed generic version of the given . + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + assemblies = new[] { typeof(ILogger).Assembly }; + var types = container.GetTypesToRegister(assemblies) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + + + Use this method when you need influence the types that are registered using + Container.Collections.Register. + The Collections.Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ( + typeof(ILogger).Assembly, + typeof(FileLogger).Assembly) + .Where(type => type.IsPublic); + + container.Collections.Register(types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ILogger interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Container.Collections.Register<TService>(IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + A collection of types. + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete non-generic types that are located in the supplied + and implement or inherit from the supplied . + can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register or + Collections.Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Returns all concrete types that are located in the supplied + and implement or inherit from the supplied and match the specified + . can be an open-generic type. + + + Use this method when you need influence the types that are registered using + Register. + The Register overloads that take a collection of + objects use this method internally to get the list of types that need to be registered. Instead of + calling such overload, you can call an overload that takes a list of objects + and pass in a filtered result from this GetTypesToRegister method. + ).Assembly }; + var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true }; + var types = container.GetTypesToRegister(typeof(ICommandHandler<>), assemblies, options) + .Where(type => type.IsPublic); + + container.Register(typeof(ICommandHandler<>), types); + ]]> + This example calls the GetTypesToRegister method to request a list of concrete implementations + of the ICommandHandler<T> interface from the assembly of that interface. After that + all internal types are filtered out. This list is supplied to the + Register(Type, IEnumerable<Type>) + overload to finish the registration. + + The base type or interface to find derived types for. This can be both + a non-generic and open-generic type. + A list of assemblies that will be searched. + The options. + A collection of types. + Thrown when one of the arguments contain a null reference + (Nothing in VB). + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + + + + Registers a collection of singleton elements of type . + + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + + + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + + + + + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The lifestyle that specifies how the returned instance will be cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + + Thrown when one of the arguments is a null reference (Nothing in VB). + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that a new instance of will be + returned every time a is requested (transient) and where the + supplied returns true. The predicate will only be evaluated a finite + number of times; the predicate is unsuited for making decisions based on runtime conditions. + + + This method uses the container's + LifestyleSelectionBehavior to select + the exact lifestyle for the specified type. By default this will be + Transient. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of will be + returned every time a is requested and where the supplied + returns true. The instance is cached according to the supplied + . The predicate will only be evaluated a finite number of times; the + predicate is unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The actual type that will be returned when requested. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when and + are not a generic type or when + is a partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that an instance of the type returned from + will be returned every time a + is requested and where the supplied + returns true. The instance is cached according to the supplied + . Both the and + will only be evaluated a finite number of times; + they unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + A factory that allows building Type objects that define the + implementation type to inject, based on the given contextual information. The delegate is allowed + to return (partially) open-generic types. + The lifestyle that defines how returned instances are cached. + The predicate that determines whether the registration can be applied for + the requested service type. This predicate can be used to build a fallback mechanism where + multiple registrations for the same service type are made. + Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is a + partially-closed generic type. + + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + + Thrown when this container instance is locked and can not be altered. + + + + + Conditionally registers that will be used every time a + is requested and where the supplied + returns true. The predicate will only be evaluated a finite number of times; the predicate is + unsuited for making decisions based on runtime conditions. + + The base type or interface to register. This can be an open-generic type. + The instance to register. + The predicate that determines whether the + can be applied for the requested service type. This predicate + can be used to build a fallback mechanism where multiple registrations for the same service type + are made. Note that the predicate will be called a finite number of times and its result will be cached + for the lifetime of the container. It can't be used for selecting a type based on runtime conditions. + + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is open generic or + is not assignable to . + + Thrown when this container instance is locked and can not be altered. + + + + + Occurs when an instance of a type is requested that has not been registered explicitly, allowing + resolution of unregistered types before the container tries to create the type. + + + + The event is called by the container every time an + unregistered type is requested for the first time, allowing a developer to do unregistered type + resolution. By calling the + Register method on the , a , or delegate can be registered allowing the container to retrieve instances of the requested type. This registration is cached and it prevents the @@ -891,7 +1488,7 @@ will result in an , while registrations that take a delegate (such as Register<TService>(Func<TService>)) will result in an . Singletons that are passed in using their - value (RegisterSingleton<TService>(TService)) + value (RegisterInstance<TService>(TService)) will result in an . Note that other ExpressionBuilding registrations might have changed the property and might have supplied an of a different type. The order in @@ -958,6 +1555,14 @@ + + Gets the object that allows access to methods related to registration and creation of collections. + The instance for this container. + + + This property is obsolete. Please use instead. + The instance for this container. + Registers that a new instance of will be returned every time it @@ -1184,17 +1789,57 @@ The interface or base type that can be used to retrieve the instance. The instance to register. - Thrown when this container instance is locked and can not be altered, or when the - has already been registered. - - Thrown when is a null reference. + Thrown when this container instance is locked and can not be altered, or when the + has already been registered. + + Thrown when is a null reference. + + + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton<TService>(Func<TService>). + + The interface or base type that can be used to retrieve the instance. + The instance to register. + + Thrown when this container instance is locked and can not be altered, or when the + has already been registered. + + Thrown when is a null reference. + + + + + Registers a single instance that will be returned when an instance of type + is requested. This must be thread-safe + when working in a multi-threaded environment. + + The base type or interface to register. + The instance to register. + Thrown when either or + are null references (Nothing in VB). + Thrown when is + no sub type from . + + Thrown when this container instance is locked and can not be altered, or when an + the has already been registered. - + Registers a single instance that will be returned when an instance of type is requested. This must be thread-safe when working in a multi-threaded environment. + NOTE: Do note that instances supplied by this method NEVER get disposed by the + container, since the instance is assumed to outlive this container instance. If disposing is + required, use + RegisterSingleton(Type, Func<object>). The base type or interface to register. The instance to register. @@ -1387,7 +2032,7 @@ (using constructor injection). Types that are newed up manually by supplying a delegate to the container (using the method) or registered as single instance - (using ) will not trigger initialization. + (using ) will not trigger initialization. When initialization of these instances is needed, this must be done manually, as can be seen in the following example: option is supplied. Thrown when has an invalid value. - - - Delegate that allows intercepting calls to and - . - - Contextual information about the to be created object. - A delegate that produces the actual instance according to its - lifestyle settings. - The instance that is returned from or an intercepted instance. - - - Configuration options for the Container. - - The following example shows the typical usage of the ContainerOptions class. - (); - - // Use of ContainerOptions class here. - container.Options.AllowOverridingRegistrations = true; - - // Replaces the previous registration of ITimeProvider - container.Register(); - ]]> - - - - - Gets the container to which this ContainerOptions instance belongs to. - - The current Container. - - + - Gets or sets a value indicating whether the container allows overriding registrations. The default - is false. + Contains methods for registering and creating collections in the . - The value indicating whether the container allows overriding registrations. - + - Gets or sets a value indicating whether the container should suppress checking for lifestyle - mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default - is false. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether the container should suppress checking for lifestyle - mismatches. - - - Gets or sets a value indicating whether. - This method is deprecated. Changing its value will have no effect. - The value indicating whether the container will return an empty collection. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets a value indicating whether all the containers in the current AppDomain should throw - exceptions that contain fully qualified type name. The default is false which means - the type's namespace is omitted. + Creates a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The value indicating whether exception message should emit full type names. + The element type of the collections to register. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. - + - Gets or sets the constructor resolution behavior. By default, the container only supports types - that have a single public constructor. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The constructor resolution behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - Gets or sets the dependency injection behavior. - The constructor injection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the property selection behavior. The container's default behavior is to do no - property injection. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The property selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the lifestyle selection behavior. The container's default behavior is to make - registrations using the lifestyle. - The lifestyle selection behavior. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. - + - Gets or sets the default lifestyle that the container will use when a registration is - made when no lifestyle is supplied. - The default lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - - - Gets or sets the default scoped lifestyle that the container should use when a registration is - made using Lifestyle.Scoped. - The default scoped lifestyle. - Thrown when the supplied value is a null reference. - - Thrown when the container already contains registrations. + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - - Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. - By default, this value is true for the first few containers that are created in an AppDomain - and false for all other containers. You can set this value explicitly to false - to prevent the use of dynamic assemblies or you can set this value explicitly to true to - force more container instances to use dynamic assemblies. Note that creating an infinite number - of Container instances (for instance one per web request) - with this property set to true will result in a memory leak; dynamic assemblies take up - memory and will only be unloaded when the AppDomain is unloaded. - - A boolean indicating whether the container should use a dynamic assembly for compilation. - - - + - Registers an delegate that allows intercepting calls to - GetInstance and - . + Creates a collection of , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - If multiple registered instances must be applied, they will be - applied/wrapped in the order of registration, i.e. the first registered interceptor will call the - original instance producer delegate, the second interceptor will call the first interceptor, etc. - The last registered interceptor will become the outermost method in the chain and will be called - first. - - The delegate to register. - The predicate that will be used to check whether the given delegate must - be applied to a registration or not. The given predicate will be called once for each registration - in the container. - - Thrown when either the or are - null references. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A collection that acts as stream, and calls back into the container to resolve instances + every time the collection is enumerated. + Thrown when is a null + reference (Nothing in VB). - - Thrown when this container instance is locked and can not be altered. + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. - - The following example shows the usage of the method: - - { - object instance = producer.Invoke(); - Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); - return instance; - }, - context => context.Producer.ServiceType.Name.EndsWith("Controller")); - - container.Register(); - container.Register(); - - // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. - container.GetInstance(); - ]]> - - - Returns a string that represents the current object. - A string that represents the current object. + + + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - An instance of this type can be injected into constructors of decorator classes that are registered - using RegisterDecorator. This type contains - contextual information about the applied decoration and it allows users to examine the given instance - to make runtime decisions. + Creates a new instance defining the creation of a collection of + all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The collection's instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + A list of assemblies that will be searched. + A new instance. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The closed generic service type. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The implementation type. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the list of the types of decorators that have already been applied to this instance. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The applied decorators. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Creates a new instance defining the creation of a collection of + , whose instances will be resolved lazily + each time the returned collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The current expression that is about to be decorated. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + A new instance. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + types supplied by the given instances. + - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterDecorator - overload that takes this delegate. This type contains information about the decoration that is about - to be applied and it allows users to examine the given instance to see whether the decorator should - be applied or not. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - - Please see the - RegisterDecorator - method for more information. - + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the closed generic service type for which the decorator is about to be applied. The original - service type will be returned, even if other decorators have already been applied to this type. + Allows appending new registrations to existing registrations made using one of the + Collections.Register overloads. - The closed generic service type. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the type of the implementation that is created by the container and for which the decorator - is about to be applied. The original implementation type will be returned, even if other decorators - have already been applied to this type. Please not that the implementation type can not always be - determined. In that case the closed generic service type will be returned. + Appends a new to existing registrations made using one of the + Container.Collections.Register + overloads. - The implementation type. + The service type of the collection. + The registration to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, is open generic, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Gets the list of the types of decorators that have already been applied to this instance. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads. - The applied decorators. + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + Thrown when the is ambiguous. + - + - Gets the current object that describes the intention to create a new - instance with its currently applied decorators. + Appends a new registration of to existing registrations + made for a collection of elements using one of the + Container.Collections.Register + overloads with the given . - The current expression that is about to be decorated. + The element type of the collections to register. + The concrete type that will be appended as registration to the + collection. + The lifestyle that specifies how the returned instance will be cached. + Thrown when the is ambiguous. + + Thrown when is a null reference. + - + - Thrown by the container in case of a diagnostic error. + Appends a new registration to existing registrations made for a collection of + elements using one of the + Container.Collections.Register + overloads. + The service type of the collection. + The implementation type to append. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when the is not a + reference type, or ambiguous. + Thrown when the container is locked. + Thrown when the method is called for a registration + that is made with one of the Collections.Register overloads that accepts a dynamic collection + (an IEnumerable or IEnumerable<TService>). - + - Initializes a new instance of the class. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. + The interface or base type that can be used to retrieve instances. + The container-uncontrolled collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. - + - Initializes a new instance of the class with a specified error - message. + Registers a collection of singleton elements of type . - The message that describes the error. + The interface or base type that can be used to retrieve instances. + The collection to register. + + Thrown when this container instance is locked and can not be altered, or when a + for has already been registered. + + Thrown when is a null + reference. + Thrown when one of the elements of + is a null reference. - + - Initializes a new instance of the class with a specified error - message. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - The list of errors. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Initializes a new instance of the class with a specified error - message and a reference to the inner exception that is the cause of this exception. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - - The error message that explains the reason for the exception. - - - The exception that is the cause of the current exception, or a null reference (Nothing in Visual - Basic) if no inner exception is specified. - - - - Gets the list of instances. - A list of instances. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Provides data for and interaction with the - ExpressionBuilding event of - the . An observer can change the - property to change the component that is - currently being built. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. + + + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. + + The base type or interface for elements in the collection. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element, a generic type definition, or the is + not assignable from one of the given elements. + - + - Gets the type that is known to be returned by the - Expression (most often the implementation - type used in the Register call). This type will be a derivative of - RegisteredServiceType (or - or RegisteredServiceType itself). If the Expression is changed, the new expression - must also return an instance of type KnownImplementationType or a sub type. - This information must be described in the new Expression. + Registers a collection of , whose instances will be resolved lazily + each time the resolved collection of is enumerated. + The underlying collection is a stream that will return individual instances based on their + specific registered lifestyle, for each call to . + The order in which the types appear in the collection is the exact same order that the items were + supplied to this method, i.e the resolved collection is deterministic. - A . - - - Gets the lifestyle for the component that is currently being built. - The . - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. + The base type or interface for elements in the collection. This can be + an a non-generic type, closed generic type or generic type definition. + The collection of objects whose instances + will be requested from the container. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + Thrown when contains a null + (Nothing in VB) element or when is not assignable from any of the + service types supplied by the given instances. + - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers a dynamic (container uncontrolled) collection of elements of type + . A call to will return the + itself, and updates to the collection will be + reflected in the result. If updates are allowed, make sure the collection can be iterated safely + if you're running a multi-threaded application. - The collection of instances. + The base type or interface for elements in the collection. + The collection of items to register. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + Thrown when represents an + open generic type. - + - Provides data for and interaction with the - ExpressionBuilt event of - the . An observer can change the - property to change the component that is currently - being built. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - - Initializes a new instance of the class. - Type of the registered service. - The registered expression. - - - Gets the registered service type that is currently requested. - The registered service type that is currently requested. - - - Gets or sets the currently registered - Expression. - The current registration. - Thrown when the supplied value is a null reference. - - - Gets or sets the current lifestyle of the registration. - The original lifestyle of the registration. - - + - Gets the collection of currently known relationships. This information is used by the Diagnostics - Debug View. Change the contents of this collection to represent the changes made to the - Expression property (if any). This allows - the Diagnostics Debug View to analyze those new relationships as well. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. - The collection of instances. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Helper methods for the container. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - + - Contains contextual information about the direct consumer for which the given dependency is injected - into. + Registers all concrete, non-generic types (both public and internal) that are defined in the given + set of and that implement the given + with a default lifestyle and register them as a collection of . + Unless overridden using a custom + LifestyleSelectionBehavior, the + default lifestyle is Transient. + Composites, + decorators and + generic type definitions + will be excluded from registration. + The element type of the collections to register. This can be either + a non-generic, closed-generic or open-generic type. + A list of assemblies that will be searched. + Thrown when one of the supplied arguments contain a null + reference (Nothing in VB). - - Initializes a new instance of the class. - The constructor parameter for the created component. - - - Initializes a new instance of the class. - The implementation type of the consumer of the component that should be created. - The property for the created component. - - - Gets the service type of the consumer of the component that should be created. - The closed generic service type. - - - Gets the implementation type of the consumer of the component that should be created. - The implementation type. - - + - Gets the information about the consumer's target in which the dependency is injected. The target - can be either a property or a constructor parameter. + Delegate that allows intercepting calls to and + . - The for this context. + Contextual information about the to be created object. + A delegate that produces the actual instance according to its + lifestyle settings. + The instance that is returned from or an intercepted instance. - - Returns a string that represents the . - A string. + + Configuration options for the Container. + + The following example shows the typical usage of the ContainerOptions class. + (); + + // Use of ContainerOptions class here. + container.Options.AllowOverridingRegistrations = true; + + // Replaces the previous registration of ITimeProvider + container.Register(); + ]]> + - + - Discovers the attributes of the code element (a property or parameter) where a dependency will be - injected into, and provides access to its meta data. + Gets the container to which this ContainerOptions instance belongs to. + The current Container. - - Gets the constructor argument of the consumer of the component where the dependency will be - injected into. The property can return null. - The or null when the dependency is injected into a property. - - - Gets the property of the consumer of the component where the dependency will be injected into. - The property can return null. - The or null when the dependency is injected into a constructor - argument instead. - - - Gets the name of the target. - A string containing the name of the target. - - - Gets the type of the target. - A containing the type of the target. - - - Gets the member of the target. This is either the constructor of the parameter, or in - case the target is a property, the property itself will be returned. - A containing the type of the target. - - + - Returns an array of all of the custom attributes defined on either the or - the , excluding named attributes, or an empty array if there are no custom - attributes. + Gets or sets a value indicating whether the container allows overriding registrations. The default + is false. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - There is more than one attribute of type attributeType - defined on this member. + The value indicating whether the container allows overriding registrations. - + - Returns an array of custom attributes defined on either the or - the , identified by type, or an empty array if there are no custom - attributes of that type. + Gets or sets a value indicating whether the container should suppress checking for lifestyle + mismatches (see: https://simpleinjector.org/dialm) when a component is resolved. The default + is false. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - An array of Objects representing custom attributes, or an empty array. - The custom attribute type cannot be loaded. - attributeType is null. + The value indicating whether the container should suppress checking for lifestyle + mismatches. - + + Gets or sets a value indicating whether. + This method is deprecated. Changing its value will have no effect. + The value indicating whether the container will return an empty collection. + + - Indicates whether one or more instance of attributeType is defined on this either the - or the . + Gets or sets a value indicating whether all the containers in the current AppDomain should throw + exceptions that contain fully qualified type name. The default is false which means + the type's namespace is omitted. - The type of the custom attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - true if the attributeType is defined on this member; false otherwise. + The value indicating whether exception message should emit full type names. - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. + Gets or sets the constructor resolution behavior. By default, the container only supports types + that have a single public constructor. - The parameter to inspect. - A custom attribute that matches T, or null if no such attribute is found. + The constructor resolution behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + + Gets or sets the dependency injection behavior. + The constructor injection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + + + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. + Gets or sets the property selection behavior. The container's default behavior is to do no + property injection. - The parameter to inspect.The parameter to inspect. - True to inspect the ancestors of element; otherwise, false. - A custom attribute that matches T, or null if no such attribute is found. + The property selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter. - - The type of attribute to search for. - A custom attribute that matches attributeType, or null if no such attribute is found. + Gets or sets the lifestyle selection behavior. The container's default behavior is to make + registrations using the lifestyle. + The lifestyle selection behavior. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a custom attribute of a specified type that is applied to a specified parameter, and - optionally inspects the ancestors of that parameter. - - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A custom attribute matching attributeType, or null if no such attribute is found. + Gets or sets the default lifestyle that the container will use when a registration is + made when no lifestyle is supplied. + The default lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - - The type of attribute to search for. - A collection of the custom attributes that are applied to element and that match T, or - an empty collection if no such attributes exist. + Gets or sets the default scoped lifestyle that the container should use when a registration is + made using Lifestyle.Scoped. + The default scoped lifestyle. + Thrown when the supplied value is a null reference. + + Thrown when the container already contains registrations. + - + - Retrieves a collection of custom attributes of a specified type that are applied to a specified - parameter, and optionally inspects the ancestors of that parameter. + Gets or sets a value indicating whether the container will use dynamic assemblies for compilation. + By default, this value is true for the first few containers that are created in an AppDomain + and false for all other containers. You can set this value explicitly to false + to prevent the use of dynamic assemblies or you can set this value explicitly to true to + force more container instances to use dynamic assemblies. Note that creating an infinite number + of Container instances (for instance one per web request) + with this property set to true will result in a memory leak; dynamic assemblies take up + memory and will only be unloaded when the AppDomain is unloaded. - The type of attribute to search for. - True to inspect the ancestors of element; otherwise, false. - A collection of the custom attributes that are applied to element and that match T, or an - empty collection if no such attributes exist. + A boolean indicating whether the container should use a dynamic assembly for compilation. + - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - GetCurrentRegistrations() or - GetRegistration(Type, bool). + Registers an delegate that allows intercepting calls to + GetInstance and + . - The Register method overloads create InstanceProducer instances internally, but - InstanceProducers can be created manually to implement special scenarios. An - InstanceProducer wraps instance. The Registration builds an - that describes the intend to create the instance according to a certain - lifestyle. The InstanceProducer on the other hand transforms this Expression to a - delegate and allows the actual instance to be created. A Registration itself can't create any - instance. The InsanceProducer allows intercepting created instances by hooking onto the - Container.ExpressionBuilt event. The - RegisterDecorator methods for - instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance - with a decorator. + If multiple registered instances must be applied, they will be + applied/wrapped in the order of registration, i.e. the first registered interceptor will call the + original instance producer delegate, the second interceptor will call the first interceptor, etc. + The last registered interceptor will become the outermost method in the chain and will be called + first. + The delegate to register. + The predicate that will be used to check whether the given delegate must + be applied to a registration or not. The given predicate will be called once for each registration + in the container. + + Thrown when either the or are + null references. + + + Thrown when this container instance is locked and can not be altered. + - The following example shows the creation of two different InstanceProducer instances that wrap - the same Registration instance. Since the Registration is created using the - Singleton lifestyle, both producers will return - the same instance. The InstanceProducer for the Interface1 however, will wrap that - instance in a (transient) Interface1Decorator. + The following example shows the usage of the method: (container); - - var producer1 = new InstanceProducer(typeof(Interface1), registration); - var producer2 = new InstanceProducer(typeof(Interface2), registration); - - container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); - - var instance1 = (Interface1)producer1.GetInstance(); - var instance2 = (Interface2)producer2.GetInstance(); - - Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); - Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + container.Options.RegisterResolveInterceptor((context, producer) => + { + object instance = producer.Invoke(); + Console.WriteLine(instance.GetType().Name + " resolved for " + context.Producer.ServiceType.Name); + return instance; + }, + context => context.Producer.ServiceType.Name.EndsWith("Controller")); + + container.Register(); + container.Register(); - Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + // This line will write "HomeViewModel resolved for IHomeViewModel" to the console. + container.GetInstance(); ]]> - - Initializes a new instance of the class. - The service type for which this instance is created. - The . - - - - Gets the for this registration. The returned lifestyle can differ from the - lifestyle that is used during the registration. This can happen for instance when the registration - is changed by an ExpressionBuilt - registration or gets decorated. - - The for this registration. - - - Gets the service type for which this producer produces instances. - A instance. - - - Gets the instance for this instance. - The . - - - - Creates a new based on the given - and where the will be used as-is; - no interception (using ExpressionBuilt) such as - decorators will be applied. - - The service type for which this instance is created. - The expression that describes the instance to be produced. - The instance for this registration. - A new that describes the expression. - - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. - - - - Builds an expression that expresses the intent to get an instance by the current producer. A call - to this method locks the container. No new registrations can't be made after a call to this method. - - An Expression. - - - - Gets the collection of relationships for this instance that the container knows about. - This includes relationships between the registered type and its dependencies and relationships - between applied decorators and their dependencies. Note that types that are not newed up by the - container and properties that are injected inside a custom delegate that is registered using the - RegisterInitializer - method are unknown to the container and are not returned from this method. - Also note that this method will return an empty collection when called before the - registered type is requested from the container (or before - Verify is called). - - An array of instances. + + Returns a string that represents the current object. + A string that represents the current object. - + - Builds a string representation of the object graph with the current instance as root of the - graph. + An instance of this type can be injected into constructors of decorator classes that are registered + using RegisterDecorator. This type contains + contextual information about the applied decoration and it allows users to examine the given instance + to make runtime decisions. - A string representation of the object graph. - Thrown when this method is called before - or have been called. These calls can be - done directly and explicitly by the user on this instance, indirectly by calling - or on an instance that depends on this - instance, or by calling Verify on the container. - - + - Produces instances for a given registration. Instances of this type are generally created by the - container when calling one of the Register overloads. Instances can be retrieved by calling - or . + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - The service type. + The closed generic service type. - - Initializes a new instance of the class. - The . + + + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. + + The implementation type. - - Produces an instance. - An instance. Will never return null. - When the instance could not be retrieved or is null. + + + Gets the list of the types of decorators that have already been applied to this instance. + + The applied decorators. - + - Factory for the creation of a delegate that applies caching to the supplied - . + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. - A factory for creating new instances. - A factory that returns cached instances. + The current expression that is about to be decorated. - + - Instances returned from the container can be cached. The contains several - overloads of the Register method that take a Lifestyle instance as argument to define - how returned instances should be cached. The core library contains two lifestyles out of the box. By - supplying Lifestyle.Transient, the registered instance is not - cached; a new instance is returned every time it is requested or injected. By supplying - Lifestyle.Singleton instances can be cached indefinitely; only - a single instance of the registered component will be returned by that container instance. Other - lifestyles are defined in integration and extension packages. The - CreateCustom method allows defining a custom lifestyle and - the CreateHybrid method - allows creating a lifestyle that mixes multiple other lifestyles. + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterDecorator + overload that takes this delegate. This type contains information about the decoration that is about + to be applied and it allows users to examine the given instance to see whether the decorator should + be applied or not. - This type is abstract and can be overridden to implement a custom lifestyle. + Please see the + RegisterDecorator + method for more information. - + - The lifestyle instance that doesn't cache instances. A new instance of the specified - component is created every time the registered service is requested or injected. + Gets the closed generic service type for which the decorator is about to be applied. The original + service type will be returned, even if other decorators have already been applied to this type. - - The following example registers the SomeServiceImpl implementation for the - ISomeService service type using the Transient lifestyle: - (Lifestyle.Transient); - ]]> - Note that Transient is the default lifestyle, the previous registration can be reduced to - the following: - (); - ]]> - + The closed generic service type. - + - - The lifestyle that caches components according to the lifetime of the container's configured - scoped lifestyle. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the active scope gets disposed. - + Gets the type of the implementation that is created by the container and for which the decorator + is about to be applied. The original implementation type will be returned, even if other decorators + have already been applied to this type. Please not that the implementation type can not always be + determined. In that case the closed generic service type will be returned. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Scoped lifestyle: - (Lifestyle.Scoped); - ]]> - + The implementation type. - + - - The lifestyle that caches components during the lifetime of the instance - and guarantees that only a single instance of that component is created for that instance. Since - general use is to create a single Container instance for the lifetime of the application / - AppDomain, this would mean that only a single instance of that component would exist during the - lifetime of the application. In a multi-threaded applications, implementations registered using - this lifestyle must be thread-safe. - - - In case the type of a cached instance implements , the container will - ensure its disposal when the container gets disposed. - + Gets the list of the types of decorators that have already been applied to this instance. - - The following example registers the RealTimeProvider implementation for the - ITimeProvider service type using the Singleton lifestyle: - (Lifestyle.Singleton); - ]]> - - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. - - - Gets the user friendly name of this lifestyle. - The user friendly name of this lifestyle. + The applied decorators. - + - Gets the length of the lifestyle. Implementers must implement this property. The diagnostic - services use this value to compare lifestyles with each other to determine lifestyle - misconfigurations. + Gets the current object that describes the intention to create a new + instance with its currently applied decorators. - The representing the length of this lifestyle. + The current expression that is about to be decorated. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Hooks into the building process and adds a decorator if needed. - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use - the in case its - GetCurrentScope method returns a - scope; otherwise the is used. The hybrid lifestyle will - redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, - any number of lifestyles can be mixed. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diaal. - The lifestyle to use when its - GetCurrentScope method returns a - scope.. - The lifestyle to use when the - GetCurrentScope method of the - argument returns null. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - ThreadScopedLifestyle and Transient: - - (hybridLifestyle); - container.Register(hybridLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and - Transient. - - - + + Gets the lifestyles that causes the registrations to be conflicting. + instances. + + + Gets the implementation type that the affected registrations map to. + A . + + + Gets the registration that caused this warning. + /// An . + + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Gets the list of registrations that are in conflict with the . - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The lifestyle to use when - returns true. - The lifestyle to use when - returns false. - A new hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - - HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); - - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); - ]]> - - Hybrid lifestyles can be nested: - - lifestyle.GetCurrentScope(container) != null, - lifestyle, - Lifestyle.Transient); - - var mixedScopeLifestyle = Lifestyle.CreateHybrid( - () => HttpContext.Current != null, - new WebRequestLifestyle(), - mixedLifetimeTransientLifestyle); - ]]> - - The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and - Transient. - - + A list of instances. - + - The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied - delegate the hybrid lifestyle will redirect the creation of - the instance to the correct lifestyle. The result of the - delegate will not be cached; it is invoked each time an instance is requested or injected. By - nesting hybrid lifestyles, any number of lifestyles can be mixed. + Entry point for doing diagnostic analysis on instances. - The delegate that determines which - lifestyle should be used. The will be used if true is - returned; the otherwise. This delegate will be called every - time an instance needs to be resolved or injected. - The scoped lifestyle to use when - returns true. - The scoped lifestyle to use when - returns false. - A new scoped hybrid lifestyle that wraps the supplied lifestyles. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - The following example shows the creation of a HybridLifestyle that mixes an - WebRequestLifestyle and ThreadScopedLifestyle: - + The following example shows the usage of the Analyzer class: HttpContext.Current != null, - new WebRequestLifestyle(), - new ThreadScopedLifestyle()); + DiagnosticResult[] results = Analyzer.Analyze(container); - // The created lifestyle can be reused for many registrations. - container.Register(mixedScopeLifestyle); - container.Register(mixedScopeLifestyle); + var typesWithAShortedLifetimeThanTheirDependencies = + from result in results + where result.DiagnosticType == DiagnosticType.LifestyleMismatch + let mismatch = (LifestyleMismatchDiagnosticResult)result + select mismatch.Relationship.ImplementationType; ]]> - + - Creates a custom lifestyle using the supplied delegate. + Analyzes the supplied instance. - - The supplied will be called just once per registered - service. The supplied will be called by the framework - when the type is resolved for the first time, and the framework will supply the factory with a - Func<object> for creating new (transient) instances of that type (that might - have been intercepted and - initializers might have been applied). - It is the job of the to return a Func<object> - that applies the proper caching. The Func<object> that is returned by the - will be stored for that registration (every - registration will store its own Func<object> delegate) and this delegate will be - called every time the service is resolved (by calling - container.GetInstance<TService> or when that service is injected into another - type). - - The name of the lifestyle to create. The name is used to display the lifestyle - in the debugger. - A factory delegate that takes a Func<object> delegate - that will produce a transient instance and returns a delegate that returns cached instances. - A new . - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when is an empty string. - - The following example shows the creation of a lifestyle that caches registered instances for 10 - minutes: - - { - TimeSpan timeout = TimeSpan.FromMinutes(10); - var syncRoot = new object(); - var expirationTime = DateTime.MinValue; - object instance = null; - - // If the application has multiple registrations using this lifestyle, each registration - // will get its own Func delegate (created here) and therefore get its own set - // of variables as defined above. - return () => - { - lock (syncRoot) - { - if (expirationTime < DateTime.UtcNow) - { - instance = instanceCreator(); - expirationTime = DateTime.UtcNow.Add(timeout); - } - - return instance; - } - }; - }); - - var container = new Container(); - - // We can reuse the created lifestyle for multiple registrations. - container.Register(customLifestyle); - container.Register(customLifestyle); - ]]> - + The container instance to analyze. + A collection of sub types that describe the diagnostic + warnings and messages. - + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Diagnostic result for a warning about a concrete type that was not registered explicitly and was not + resolved using unregistered type resolution, but was created by the container using the transient + lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + + Gets a collection of instances that describe all + container-registered dependencies for the given component. + List of objects. + + - Creates a new instance for the given - that will create new instances of specified caching as - specified by this lifestyle. + A hierarchical group of . - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + + + Gets the base that describes the service types of its + . The value often be either (in case this is a + root group) or a partial generic type to allow hierarchical grouping of a large number of related + generic types. + + The . + + + Gets the friendly name of the group. + The name. + + + Gets the description of the group. + The description. + + + Gets the diagnostic type of all grouped instances. + The . + + + Gets the parent or null (Nothing in VB) when this is the + root group. + The . + + + Gets the collection of child s. + A collection of elements. + + + Gets the collection of instances. + /// A collection of elements. + + + + Base class for types that hold information about a single diagnostic message or warning for a + particular type or part of the configuration. + + + + Gets the severity of this result. + The . + + + Gets the diagnostic type of this result. + The . + + + Gets the service type to which this warning is related. + A . + + + Gets the description of the diagnostic result. + A with the description. + + + Gets the documentation URL of the diagnostic result. + A with the URL. + + + Gets the hierarchical group to which this diagnostic result belongs. + The . + + - Creates a new instance for the given - that will create new instances instance using the supplied - with the caching as specified by this lifestyle. + Specifies the list of severity levels that diagnostic results can have. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + + Information messages and tips about the configuration. + + + Warning messages that are likely to cause problems in your application. + + - Creates a new instance for the given - that will create new instances of specified with the - caching as specified by this lifestyle. + Specifies the list of diagnostic types that are currently supported by the diagnostic + . Note that new diagnostic types might be added in future versions. + For more information, please read the + Diagnosing your configuration using the Diagnostic + Services wiki documentation. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. + Diagnostic type that warns about + a concrete type that was not registered explicitly and was not resolved using unregistered type + resolution, but was created by the container using the transient lifestyle. + For more information, see: https://simpleinjector.org/diaut. - The concrete type that will be registered. - The instance for which a - must be created. - A new or cached instance. - Thrown when is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when a + component depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be created. - The instance for which a - must be created. - A new instance. - Thrown when is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when a + component depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - Thrown when either or - are null references (Nothing in VB). - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle, - or returns an already created instance for this container + lifestyle - + type combination. - This method might fail when run in a partial trust sandbox when - is an internal type. + Diagnostic type that warns when a component depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - This overload has been deprecated. Please call - instead. + Diagnostic type that warns when multiple registrations map to the same component and + lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The interface or base type that can be used to retrieve the instances. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic type that warns when a component is registered as transient, while implementing + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - The delegate that will be responsible for creating new instances. - The instance for which a - must be created. - A new instance. - Thrown when on of the supplied arguments is a null - reference (Nothing in VB). - + - When overridden in a derived class, - creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Diagnostic type that warns when multiple registrations exist that map to the same component but + with different lifestyles, which will cause the component to be cached in different -possibly + incompatible- ways. + For more information, see: https://simpleinjector.org/diaal. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + - When overridden in a derived class, - creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Diagnostic result for a warning about a component that is registered as transient, but implements + . + For more information, see: https://simpleinjector.org/diadt. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. - - If you are implementing your own lifestyle, override this method to implement the code necessary - to create and return a new . Note that you should always create - a new instance. They should never be cached. - - + + Gets the object that describes the relationship between the component and its dependency. + A instance. + + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterConditional - overload that takes this delegate. This type contains information about the open generic service that - is about to be created and it allows the user to examine the given instance to decide whether this - implementation should be created or not. + Diagnostic result for a warning about a + component that depends on a service with a lifestyle that is shorter than that of the component. + For more information, see: https://simpleinjector.org/dialm. - - Please see the - Register - method for more information. - - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the object that describes the relationship between the component and its dependency. + A instance. - - Gets the closed generic implementation type that will be created by the container. - The implementation type. + + + Diagnostic result that warns about a + component that depends on an unregistered concrete type and this concrete type has a lifestyle that is + different than the lifestyle of an explicitly registered type that uses this concrete type as its + implementation. + For more information, see: https://simpleinjector.org/diasc. + - - Gets a value indicating whether a previous Register registration has already - been applied for the given . - The indication whether the event has been handled. + + Gets the instance that describes the current relationship between the checked component + and the short-circuited dependency. + The . - + - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. + Gets the collection of registrations that have the component's current dependency as + implementation type, but have a lifestyle that is different than the current dependency. - The or null. + A collection of instances. - + - A Registration implements lifestyle based caching for a single service and allows building an - that describes the creation of the service. + Diagnostic result that warns about a component that depends on (too) many services. + For more information, see: https://simpleinjector.org/diasr. - - implementations create a new Registration instance for each registered - service type. s returned from the - BuildExpression method can be - intercepted by any event registered with , have - initializers - applied, and the caching particular to its lifestyle have been applied. Interception using the - Container.ExpressionBuilt will not - be applied in the Registration, but will be applied in . - - See the documentation for an example. - - + + Gets the created type. + A . + + + Gets the list of registrations that are dependencies of the . + A collection of instances. + + - Initializes a new instance of the class. + Diagnostic result that warns about when a multiple registrations map to the same implementation type + and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. + For more information, see: https://simpleinjector.org/diatl. - The this that created this registration. - The instance for this registration. - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Gets the type that this instance will create. - The type that this instance will create. + + Gets the lifestyle on which instances are torn. + A . - - Gets the this that created this registration. - The this that created this registration. + + Gets the implementation type that the affected registrations map to. + A . - - Gets the instance for this registration. - The instance for this registration. + + Gets the list of registrations that are affected by this warning. + A list of instances. - - Gets or sets a value indicating whether this registration object contains a user - supplied instanceCreator factory delegate. + + + Thrown by the container in case of a diagnostic error. + - + - Builds a new with the correct caching (according to the specifications of - its ) applied. + Initializes a new instance of the class. - An . - + - Gets the list of instances. Note that the list is only available - after calling . + Initializes a new instance of the class with a specified error + message. - A new array containing the instances. + The message that describes the error. - + - Initializes an already created instance and applies properties and initializers to that instance. + Initializes a new instance of the class with a specified error + message. - - This method is especially useful in integration scenarios where the given platform is in control - of creating certain types. By passing the instance created by the platform to this method, the - container is still able to apply any properties (as defined using a custom - ) and by applying any initializers. - - The instance to initialize. - Thrown when is a null reference - (Nothing in VB). - Thrown when the supplied is not - of type . + The list of errors. - + - Suppressing the supplied for the given registration. + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. - The . - The justification of why the warning must be suppressed. - Thrown when is a null - reference. - Thrown when either is an - empty string or when is not a valid value of . - + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual + Basic) if no inner exception is specified. + - + + Gets the list of instances. + A list of instances. + + - Builds a delegate for the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers - that are applicable to the given (if any). + Provides data for and interaction with the + ExpressionBuilding event of + the . An observer can change the + property to change the component that is + currently being built. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - A delegate. - Thrown when one of the arguments is a null reference. - + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. + + - Builds a delegate for the creation of . - The returned might be intercepted by a - Container.ExpressionBuilding event, - and the creation of the will have been wrapped with a - delegate that executes the registered - initializers - that are applicable to the given (if any). + Gets the type that is known to be returned by the + Expression (most often the implementation + type used in the Register call). This type will be a derivative of + RegisteredServiceType (or + or RegisteredServiceType itself). If the Expression is changed, the new expression + must also return an instance of type KnownImplementationType or a sub type. + This information must be described in the new Expression. - A delegate. - Thrown when one of the arguments is a null reference. + A . - + + Gets the lifestyle for the component that is currently being built. + The . + + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. + + - Builds an that describes the creation of the - using the supplied . The returned might - be intercepted by a - Container.ExpressionBuilding event, - and the will have been wrapped with a delegate that executes the - registered initializers that are - applicable to the given (if any). + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - The interface or base type that can be used to retrieve instances. - - The delegate supplied by the user that allows building or creating new instances. - An . - Thrown when one of the arguments is a null reference. + The collection of instances. - + - Builds an that describes the creation of . - The returned might be intercepted - by a Container.ExpressionBuilding - event, and the creation of the will have been wrapped with - a delegate that executes the registered - initializers that are applicable - to the InstanceProducer's ServiceType (if any). + Provides data for and interaction with the + ExpressionBuilt event of + the . An observer can change the + property to change the component that is currently + being built. - An . - Thrown when one of the arguments is a null reference. - - Implements a cache for implementations. - - is thread-safe can be used over multiple threads concurrently, but note that the - cached instances might not be thread-safe. - + + Initializes a new instance of the class. + Type of the registered service. + The registered expression. - - Initializes a new instance of the class. + + Gets the registered service type that is currently requested. + The registered service type that is currently requested. - - Initializes a new instance of the class. - The container instance that the scope belongs to. + + Gets or sets the currently registered + Expression. + The current registration. + Thrown when the supplied value is a null reference. - - Gets the container instance that this scope belongs to. - The instance. + + Gets or sets the current lifestyle of the registration. + The original lifestyle of the registration. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Gets the collection of currently known relationships. This information is used by the Diagnostics + Debug View. Change the contents of this collection to represent the changes made to the + Expression property (if any). This allows + the Diagnostics Debug View to analyze those new relationships as well. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The collection of instances. - + - Adds the to the list of items that will get disposed when the - scope ends. + Helper methods for the container. + + + + + Contains contextual information about the direct consumer for which the given dependency is injected + into. + + + + Initializes a new instance of the class. + The constructor parameter for the created component. + + + Initializes a new instance of the class. + The implementation type of the consumer of the component that should be created. + The property for the created component. + + + Gets the service type of the consumer of the component that should be created. + The closed generic service type. + + + Gets the implementation type of the consumer of the component that should be created. + The implementation type. + + + + Gets the information about the consumer's target in which the dependency is injected. The target + can be either a property or a constructor parameter. - - Instances that are registered for disposal, will be disposed in opposite order of registration and - they are guaranteed to be disposed when is called (even when - exceptions are thrown). This mimics the behavior of the C# and VB using statements, - where the method is called inside the finally block. - - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Thrown when the scope has been disposed. + The for this context. - + + Returns a string that represents the . + A string. + + - Retrieves an item from the scope stored by the given or null when no - item is stored by that key. + Discovers the attributes of the code element (a property or parameter) where a dependency will be + injected into, and provides access to its meta data. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). - - Stores an item by the given in the scope. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The key of the item to insert or override. - The actual item. May be null. - Thrown when paramref name="key"/> is a null reference - (Nothing in VB). + + Gets the constructor argument of the consumer of the component where the dependency will be + injected into. The property can return null. + The or null when the dependency is injected into a property. - - Releases all instances that are cached by the object. + + Gets the property of the consumer of the component where the dependency will be injected into. + The property can return null. + The or null when the dependency is injected into a constructor + argument instead. - + + Gets the name of the target. + A string containing the name of the target. + + + Gets the type of the target. + A containing the type of the target. + + + Gets the member of the target. This is either the constructor of the parameter, or in + case the target is a property, the property itself will be returned. + A containing the type of the target. + + - Releases all instances that are cached by the object. + Returns an array of all of the custom attributes defined on either the or + the , excluding named attributes, or an empty array if there are no custom + attributes. - False when only unmanaged resources should be released. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + There is more than one attribute of type attributeType + defined on this member. - + - Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly - or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly - defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal - or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create - more than one instance of such registered type. + Returns an array of custom attributes defined on either the or + the , identified by type, or an empty array if there are no custom + attributes of that type. + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + An array of Objects representing custom attributes, or an empty array. + The custom attribute type cannot be loaded. + Thrown when attributeType is null. - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Thrown when is null (Nothing in VB) - or an empty string. - - - Initializes a new instance of the class. - The user friendly name of this lifestyle. - Signals the lifestyle whether instances should be - disposed or not. - Thrown when is null (Nothing in VB) - or an empty string. - - - Gets the length of the lifestyle. - The representing the length of this lifestyle. + + + Indicates whether one or more instance of attributeType is defined on this either the + or the . + + The type of the custom attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + true if the attributeType is defined on this member; false otherwise. - + - Allows registering an delegate that will be called when the scope ends, - but before the scope disposes any instances. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - - During the call to all registered delegates are - processed in the order of registration. Do note that registered actions are not guaranteed - to run. In case an exception is thrown during the call to , the - will stop running any actions that might not have been invoked at that point. - Instances that are registered for disposal using on the other - hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call - to . - - The instance. - The delegate to run when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect. + A custom attribute that matches T, or null if no such attribute is found. - + - Adds the to the list of items that will get disposed when the - scope ends. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The instance. - The instance that should be disposed when the scope ends. - Thrown when one of the arguments is a null reference - (Nothing in VB). - Will be thrown when there is currently no active - scope for the supplied . + The parameter to inspect.The parameter to inspect. + True to inspect the ancestors of element; otherwise, false. + A custom attribute that matches T, or null if no such attribute is found. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The type of attribute to search for. + A custom attribute that matches attributeType, or null if no such attribute is found. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Retrieves a custom attribute of a specified type that is applied to a specified parameter, and + optionally inspects the ancestors of that parameter. - The container for which the delegate gets created. - A delegate. This method should never return null. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A custom attribute matching attributeType, or null if no such attribute is found. - + - Creates a new instance defining the creation of the - specified using the supplied - with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter. - The interface or base type that can be used to retrieve the instances. - A delegate that will create a new instance of - every time it is called. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + A collection of the custom attributes that are applied to element and that match T, or + an empty collection if no such attributes exist. - + - Creates a new instance defining the creation of the - specified with the caching as specified by this lifestyle. + Retrieves a collection of custom attributes of a specified type that are applied to a specified + parameter, and optionally inspects the ancestors of that parameter. - The concrete type that will be registered. - The instance for which a - must be created. - A new instance. + The type of attribute to search for. + True to inspect the ancestors of element; otherwise, false. + A collection of the custom attributes that are applied to element and that match T, or an + empty collection if no such attributes exist. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + GetCurrentRegistrations() or + GetRegistration(Type, bool). - By default, this method calls the method and invokes the - returned delegate. This method can be overridden to provide an optimized way for getting the - current scope. + The Register method overloads create InstanceProducer instances internally, but + InstanceProducers can be created manually to implement special scenarios. An + InstanceProducer wraps instance. The Registration builds an + that describes the intend to create the instance according to a certain + lifestyle. The InstanceProducer on the other hand transforms this Expression to a + delegate and allows the actual instance to be created. A Registration itself can't create any + instance. The InsanceProducer allows intercepting created instances by hooking onto the + Container.ExpressionBuilt event. The + RegisterDecorator methods for + instance work by hooking onto the ExpressionBuilt event and allow wrapping the returned instance + with a decorator. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + + The following example shows the creation of two different InstanceProducer instances that wrap + the same Registration instance. Since the Registration is created using the + Singleton lifestyle, both producers will return + the same instance. The InstanceProducer for the Interface1 however, will wrap that + instance in a (transient) Interface1Decorator. + (container); + + var producer1 = new InstanceProducer(typeof(Interface1), registration); + var producer2 = new InstanceProducer(typeof(Interface2), registration); + + container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); + + var instance1 = (Interface1)producer1.GetInstance(); + var instance2 = (Interface2)producer2.GetInstance(); + + Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); + Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); + + Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2); + ]]> + - - Internal helper for string resources. + + Initializes a new instance of the class. + The service type for which this instance is created. + The . - + - Contains contextual information for creating an implementation type. + Gets the for this registration. The returned lifestyle can differ from the + lifestyle that is used during the registration. This can happen for instance when the registration + is changed by an ExpressionBuilt + registration or gets decorated. - - Please see the - Register - method for more information. - + The for this registration. - - Gets the closed generic service type that is to be created. - The closed generic service type. + + Gets the service type for which this producer produces instances. + A instance. - - - Gets the contextual information of the consuming component that directly depends on the resolved - service. This property will return null in case the service is resolved directly from the container. - - The or null. + + Gets the instance for this instance. + The . - + - Returns a list of base types and interfaces of implementationType that either - equal to serviceType or are closed or partially closed version of serviceType (in case - serviceType itself is generic). - So: - -in case serviceType is non generic, only serviceType will be returned. - -If implementationType is open generic, serviceType will be returned (or a partially closed - version of serviceType is returned). - -If serviceType is generic and implementationType is not, a closed version of serviceType will - be returned. - -If implementationType implements multiple (partially) closed versions of serviceType, all those - (partially) closed versions will be returned. + Creates a new based on the given + and where the will be used as-is; + no interception (using ExpressionBuilt) such as + decorators will be applied. - The (open generic) service type to match. - The implementationType to search. - A list of types. + The service type for which this instance is created. + The expression that describes the instance to be produced. + The instance for this registration. + A new that describes the expression. - - Useful extensions on . + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed - in a C#-like syntax. Ideal for reporting type names in exception messages. + Builds an expression that expresses the intent to get an instance by the current producer. A call + to this method locks the container. No new registrations can't be made after a call to this method. - The type to convert. - A human-readable string representation of that type. - Thrown when the supplied argument is a null reference. + An Expression. - + - Returns true is there is a closed version of the supplied - that is assignable from the current . This method returns true when either - itself, one of its base classes or one of its implemented interfaces is a - closed version of ; otherwise false. + Gets the collection of relationships for this instance that the container knows about. + This includes relationships between the registered type and its dependencies and relationships + between applied decorators and their dependencies. Note that types that are not newed up by the + container and properties that are injected inside a custom delegate that is registered using the + RegisterInitializer + method are unknown to the container and are not returned from this method. + Also note that this method will return an empty collection when called before the + registered type is requested from the container (or before + Verify is called). - The type to check. - The generic type definition to match. - True when type is assignable; otherwise false. + An array of instances. - + - Gets the single closed version of that the current - is assignable from. In case none or multiple matching closed types are - found, and exception is thrown. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Builds a string representation of the object graph with the current instance as root of the + graph. - The type to check. - The generic type definition to match. - The matching closed type. - Thrown when one of the arguments is a null reference. - Thrown when is not - a generic type or when none of the base classes or implemented interfaces of - Thrown when multiple matching closed generic types - are found. + A string representation of the object graph. + Thrown when this method is called before + or have been called. These calls can be + done directly and explicitly by the user on this instance, indirectly by calling + or on an instance that depends on this + instance, or by calling Verify on the container. + - + - Gets the list of closed versions of that the current - is assignable from. Example: When is a type - class X : IX<int>, IFoo<string> and - is type IX<T>: this method will return type IX<int>. + Produces instances for a given registration. Instances of this type are generally created by the + container when calling one of the Register overloads. Instances can be retrieved by calling + or . - The type to check. - The generic type definition to match. - A list of matching closed generic types. + The service type. - - - Defines options to control the types returned from the - GetTypesToRegister - method. For a type to be returned, it should match all the conditions described by the class's - properties. In other words, in case the searched assembly contains a generic type, that is both a - decorator and a composite, it will only be returned by GetTypesToRegister in case both - , and - are set to true. - + + Initializes a new instance of the class. + The . - - Initializes a new instance of the class. + + Produces an instance. + An instance. Will never return null. + When the instance could not be retrieved or is null. - + - Gets or sets a value indicating whether decorator types should be included in the result. The default - value of this property is false. A type is considered a decorator if the type's constructor - contains a parameter of the type that exactly matches the serviceType argument, - supplied to the - GetTypesToRegister - method, or when there is a argument where T matches the - serviceType argument. + A map containing a generic argument (such as T) and the concrete type (such as Int32) that it + represents. - A boolean. - + + Implements equality. Needed for doing LINQ distinct operations. + The other to compare to. + True or false. + + + Overrides the default hash code. Needed for doing LINQ distinct operations. + An 32 bit integer. + + - Gets or sets a value indicating whether generic type definitions (types that have - TypeInfo.IsGenericTypeDefinition - set to true) - should be included in the result. The default value for this property is false. + Container controlled collections can be supplied with both Type objects or direct Registration + instances. - A boolean. - + + Will never be null. Can be open-generic. + + + Can be null. + + - Gets or sets a value indicating whether composite types should be included in the result. The default - value of this property is true. A type is considered a composite if the type's constructor - contains a parameter of IEnumerable<T>, ICollection<T>, - IList<T>, IReadOnlyCollection<T>, - IReadOnlyList<T> or T[] (array of T), where T - exactly matches the serviceType argument, supplied to the - GetTypesToRegister - method. + Gets a message that describes the current exception. - A boolean. + The error message that explains the reason for the exception, or an empty string(""). - + - Provides data for and interaction with the - ResolveUnregisteredType event of - the . An observer can check the - to see whether the unregistered type can be handled. The - method can be called to register a delegate - that allows creation of instances of the unregistered for this and future requests. + Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done + by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a + single InstanceProducer and therefore a single service type. - - Gets the unregistered service type that is currently requested. - The unregistered service type that is currently requested. - - + - Gets a value indicating whether the event represented by this instance has been handled. - This property will return true when has been called on - this instance. + Allows retrieving the concrete types of the generic type arguments of that must be used to create a + closed generic implementation of a given open generic implementation, based on on the concrete + arguments of the given closed base type. - The indication whether the event has been handled. - + - Registers a delegate that allows creation of instances of the type - expressed by the for this and future requests. The delegate - will be caches and future requests will directly call that delegate. + Helper class for building closed generic type for a given open generic type and a closed generic base. - The delegate that allows creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + Result of the GenericTypeBuilder. + + - Registers an that describes the creation of instances of the type - expressed by the for this and future requests. The delegate - will be cached and future requests will directly use that expression or the compiled delegate. + A open generic type with the concrete arguments that can be used to create a closed generic type. - - NOTE: If possible, use the Register(Registration) overload, - since this allows the analysis services to determine any configuration errors on the lifestyle of - the registration. - - The expression that describes the creation of instances of the type - expressed by the . - Thrown when the is a - null reference. - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + + This interface is not meant for public use. + + + Please do not use. + Do not use. + + + PLease do not use. + Do not use. + + - Registers a that describes the creation of instances of the type - expressed by the for this and future requests. The - registration will be cached and future requests will directly call unon that registration, the - expression that it generates or the delegate that gets compiled from that expression. + Allows validating an ArgumentMapping. - The registration that describes the creation of instances according to - the registration's lifestyle of the type expressed by the . - Thrown when the is a - null reference. - Thrown when the is a - not exactly of type where T equals the . - - Thrown when multiple observers that have registered to - the ResolveUnregisteredType event - called this method for the same type. - + - This enumeration has defines in which way the container should run the verification process. + Factory for the creation of a delegate that applies caching to the supplied + . + A factory for creating new instances. + A factory that returns cached instances. - + - Specifies that the container performs verification only, which means that it will test whether - all registrations can be constructed by iterating the registrations and letting the container - create at least one instance of each registration. An - will be thrown in case the configuration is invalid. + Instances returned from the container can be cached. The contains several + overloads of the Register method that take a Lifestyle instance as argument to define + how returned instances should be cached. The core library contains two lifestyles out of the box. By + supplying Lifestyle.Transient, the registered instance is not + cached; a new instance is returned every time it is requested or injected. By supplying + Lifestyle.Singleton instances can be cached indefinitely; only + a single instance of the registered component will be returned by that container instance. Other + lifestyles are defined in integration and extension packages. The + CreateCustom method allows defining a custom lifestyle and + the CreateHybrid method + allows creating a lifestyle that mixes multiple other lifestyles. + + This type is abstract and can be overridden to implement a custom lifestyle. + - + - Specifies that the container will run diagnostic analysis after the verification succeeded. The - container will diagnose the configuration with a subset of the available diagnostic warnings, that - are most likely an indication of a configuration mistake. A complete set of diagnostic warnings - can be retrieved by calling - Analyzer.Analyze or by viewing the - container in the Visual Studio debugger, after the verification has succeeded. + The lifestyle instance that doesn't cache instances. A new instance of the specified + component is created every time the registered service is requested or injected. + + The following example registers the SomeServiceImpl implementation for the + ISomeService service type using the Transient lifestyle: + (Lifestyle.Transient); + ]]> + Note that Transient is the default lifestyle, the previous registration can be reduced to + the following: + (); + ]]> + - + - Extension methods for enable advanced scenarios. + + The lifestyle that caches components according to the lifetime of the container's configured + scoped lifestyle. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the active scope gets disposed. + + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Scoped lifestyle: + (Lifestyle.Scoped); + ]]> + - + - Determines whether the specified container is locked making any new registrations. The container - is automatically locked when GetInstance is called for the - first time. + + The lifestyle that caches components during the lifetime of the instance + and guarantees that only a single instance of that component is created for that instance. Since + general use is to create a single Container instance for the lifetime of the application / + AppDomain, this would mean that only a single instance of that component would exist during the + lifetime of the application. In a multi-threaded applications, implementations registered using + this lifestyle must be thread-safe. + + + In case the type of a cached instance implements , the container will + ensure its disposal when the container gets disposed. + - The container. - - true if the specified container is locked; otherwise, false. - - Thrown when is null. + + The following example registers the RealTimeProvider implementation for the + ITimeProvider service type using the Singleton lifestyle: + (Lifestyle.Singleton); + ]]> + - - Determines whether the specified container is currently verifying its configuration. - The container. - true if the specified container is verifying; otherwise, false. - Thrown when is null. + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. - + + Gets the user friendly name of this lifestyle. + The user friendly name of this lifestyle. + + - Retrieves an item from the container stored by the given or null when no - item is stored by that key. + Gets the length of the lifestyle. Implementers must implement this property. The diagnostic + services use this value to compare lifestyles with each other to determine lifestyle + misconfigurations. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both GetItem and . - - The container. - The key of the item to retrieve. - The stored item or null (Nothing in VB). - Thrown when one of the supplied arguments is a null - reference (Nothing in VB). + The representing the length of this lifestyle. - + - Stores an item by the given in the container. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - - Thread-safety: Calls to this method are thread-safe, but users should take proper - percussions when they call both and SetItem. - - The container. - The key of the item to insert or override. - The actual item. May be null. - Thrown when either or - is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Adds an item by the given in the container by using the specified function, - if the key does not already exist. This operation is atomic. + The hybrid lifestyle allows mixing two lifestyles in a single registration. The hybrid will use + the in case its + GetCurrentScope method returns a + scope; otherwise the is used. The hybrid lifestyle will + redirect the creation of the instance to the selected lifestyle. By nesting hybrid lifestyles, + any number of lifestyles can be mixed. - The Type of the item to create. - The container. - The key of the item to insert or override. - The function used to generate a value for the given key. The supplied - value of will be supplied to the function when called. - The stored item or the item from the . - Thrown when either , - or is a null reference (Nothing in VB). + The lifestyle to use when its + GetCurrentScope method returns a + scope.. + The lifestyle to use when the + GetCurrentScope method of the + argument returns null. + A new hybrid lifestyle that wraps the supplied lifestyles. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). + + + The following example shows the creation of a HybridLifestyle that mixes an + ThreadScopedLifestyle and Transient: + + (hybridLifestyle); + container.Register(hybridLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Thread Scoped and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The registration to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The lifestyle to use when + returns true. + The lifestyle to use when + returns false. + A new hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, is open generic, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + + Hybrid lifestyles can be nested: + + lifestyle.GetCurrentScope(container) != null, + lifestyle, + Lifestyle.Transient); + + var mixedScopeLifestyle = Lifestyle.CreateHybrid( + () => HttpContext.Current != null, + new WebRequestLifestyle(), + mixedLifetimeTransientLifestyle); + ]]> + + The mixedScopeLifestyle now mixed three lifestyles: Web Request, Lifetime Scope and + Transient. + + - + - Allows appending new registrations to existing registrations made using one of the - RegisterCollection overloads. + The hybrid lifestyle allows mixing two lifestyles in a single registration. Based on the supplied + delegate the hybrid lifestyle will redirect the creation of + the instance to the correct lifestyle. The result of the + delegate will not be cached; it is invoked each time an instance is requested or injected. By + nesting hybrid lifestyles, any number of lifestyles can be mixed. - The container. - The service type of the collection. - The implementation type to append. + The delegate that determines which + lifestyle should be used. The will be used if true is + returned; the otherwise. This delegate will be called every + time an instance needs to be resolved or injected. + The scoped lifestyle to use when + returns true. + The scoped lifestyle to use when + returns false. + A new scoped hybrid lifestyle that wraps the supplied lifestyles. Thrown when one of the supplied arguments is a null reference (Nothing in VB). - Thrown when the is not a - reference type, or ambiguous. - Thrown when the container is locked. - Thrown when the method is called for a registration - that is made with one of the RegisterCollection overloads that accepts a dynamic collection - (an IEnumerable or IEnumerable<TService>). - - - Deprecation extensions. - - - - This interface method has been removed. Please call GetInstanceProducerFor instead. - - The behavior. - The consumer. - Throws an exception. + + + The following example shows the creation of a HybridLifestyle that mixes an + WebRequestLifestyle and ThreadScopedLifestyle: + + HttpContext.Current != null, + new WebRequestLifestyle(), + new ThreadScopedLifestyle()); + + // The created lifestyle can be reused for many registrations. + container.Register(mixedScopeLifestyle); + container.Register(mixedScopeLifestyle); + ]]> + - + - This interface method has been removed. Please call SelectProperty(PropertyInfo) instead. + Creates a custom lifestyle using the supplied delegate. - The behavior. - Type of the abstraction that is requested. - The property to check. - True when the property should be injected. + + The supplied will be called just once per registered + service. The supplied will be called by the framework + when the type is resolved for the first time, and the framework will supply the factory with a + Func<object> for creating new (transient) instances of that type (that might + have been intercepted and + initializers might have been applied). + It is the job of the to return a Func<object> + that applies the proper caching. The Func<object> that is returned by the + will be stored for that registration (every + registration will store its own Func<object> delegate) and this delegate will be + called every time the service is resolved (by calling + container.GetInstance<TService> or when that service is injected into another + type). + + The name of the lifestyle to create. The name is used to display the lifestyle + in the debugger. + A factory delegate that takes a Func<object> delegate + that will produce a transient instance and returns a delegate that returns cached instances. + A new . + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when is an empty string. + + The following example shows the creation of a lifestyle that caches registered instances for 10 + minutes: + + { + TimeSpan timeout = TimeSpan.FromMinutes(10); + var syncRoot = new object(); + var expirationTime = DateTime.MinValue; + object instance = null; + + // If the application has multiple registrations using this lifestyle, each registration + // will get its own Func delegate (created here) and therefore get its own set + // of variables as defined above. + return () => + { + lock (syncRoot) + { + if (expirationTime < DateTime.UtcNow) + { + instance = instanceCreator(); + expirationTime = DateTime.UtcNow.Add(timeout); + } + + return instance; + } + }; + }); + + var container = new Container(); + + // We can reuse the created lifestyle for multiple registrations. + container.Register(customLifestyle); + container.Register(customLifestyle); + ]]> + - + - Defines the container's behavior for finding a suitable constructor for the creation of a type. - Set the ConstructorResolutionBehavior - property of the container's property to change the default behavior - of the container. + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Gets the given 's constructor that can be used by the - container to create that instance. + Creates a new instance for the given + that will create new instances of specified caching as + specified by this lifestyle. - Type of the implementation to find a suitable constructor for. - - The . This method never returns null. - - Thrown when no suitable constructor could be found. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Defines the container's behavior for building an expression tree for an dependency to inject, based on - the information of the consuming type the dependency is injected into. - Set the ConstructorInjectionBehavior - property of the container's property to change the default behavior - of the container. - - - - Verifies the specified . - Contextual information about the consumer where the built dependency is - injected into. - - Thrown when the type of the target supplied with - the supplied cannot be used for auto wiring. - Thrown when the supplied argument is a null reference. + Creates a new instance for the given + that will create new instances instance using the supplied + with the caching as specified by this lifestyle. + + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the for the - Target of the supplied . + Creates a new instance for the given + that will create new instances of specified with the + caching as specified by this lifestyle. - Contextual information about the consumer where the built dependency is - injected into. - The indication whether the method should return null or throw - an exception when the type is not registered. - An that describes the intend of creating that - Target. This method never returns null. - Thrown when the argument is a null reference. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Defines the container's behavior for selecting the lifestyle for a registration in case no lifestyle - is explicitly supplied. - Set the LifestyleSelectionBehavior - property of the container's property to change the default behavior - of the container. By default, when no lifestyle is explicitly supplied, the - Transient lifestyle is used. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + The concrete type that will be registered. + The instance for which a + must be created. + A new or cached instance. + Thrown when is a null + reference (Nothing in VB). - - Selects the lifestyle based on the supplied type information. - Type of the implementation to that is registered. - The suited for the given type. - Thrown when either one of the arguments is a null reference. - - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterResolveInterceptor - method that takes this delegate. This type contains contextual information about a resolved type and it - allows the user to examine the given instance to decide whether the - should be applied or not. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be created. + The instance for which a + must be created. + A new instance. + Thrown when is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - The or null (Nothing in VB) when the instance producer is - unknown. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + Thrown when either or + are null references (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle, + or returns an already created instance for this container + lifestyle + + type combination. + This method might fail when run in a partial trust sandbox when + is an internal type. - /// The . + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - An instance of this type will be supplied to the - delegate that is that is supplied to the - RegisterInitializer - overload that takes this delegate. This type contains contextual information about the creation and it - allows the user to examine the given instance to decide whether the instance should be initialized or - not. + This overload has been deprecated. Please call + instead. + The interface or base type that can be used to retrieve the instances. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets a null reference. This property has been deprecated. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. - The null (Nothing in VB). + The interface or base type that can be used to retrieve the instances. + The delegate that will be responsible for creating new instances. + The instance for which a + must be created. + A new instance. + Thrown when on of the supplied arguments is a null + reference (Nothing in VB). - + - Gets the that is responsible for the initialization of the created - instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. - /// The . + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - + - Contains data that can be used to initialize a created instance. This data includes the actual - created and the information about the created instance. + When overridden in a derived class, + creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. + + If you are implementing your own lifestyle, override this method to implement the code necessary + to create and return a new . Note that you should always create + a new instance. They should never be cached. + - - Initializes a new instance of the struct. - The that contains contextual information - about the created instance. - The created instance. - - - Gets the with contextual information about the - created instance. - The . + + + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. An execution context scope flows with the logical execution context. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + + The following example shows the usage of the ExecutionContextScopeLifestyle class: + (Lifestyle.Scoped); + + using (AsyncScopedLifestyle.BeginScope(container)) + { + var instance1 = container.GetInstance(); + // ... + } + ]]> + - - Gets the created instance. - The created instance. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . + - - Returns the hash code for this instance. - A 32-bit signed integer that is the hash code for this instance. + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + - - Indicates whether this instance and a specified object are equal. - Another object to compare to. - True if the current object is equal to the other parameter; otherwise, false. + + + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - Indicates whether the current object is equal to another object of the same type. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. - An object to compare with this object. - True if the current object is equal to the other parameter; otherwise, false. + The container for which the delegate gets created. + A delegate. This method never returns null. - + - Indicates whether the values of two specified objects are equal. + This lifestyle can be used to implement ambient context-less scoping in Simple Injector. This lifestyle + can be set as DefaultScopedLifestyle and later used via Lifestyle.Scoped to register scoped instances, + while instances are resolved via Scope.GetInstance. - The first object to compare. - The second object to compare. - True if a and b are equal; otherwise, false. - + - Indicates whether the values of two specified objects are - not equal. + Forwards CreateRegistration calls to the lifestyle that is returned from the registered + container.Options.LifestyleSelectionBehavior. - The first object to compare. - The second object to compare. - True if a and b are not equal; otherwise, false. - + - Defines the container's behavior for selecting properties to inject during the creation of a type. - Set the PropertySelectionBehavior - property of the container's property to change the default behavior - of the container. By default, no properties will be injected by the container. + Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the + BeginScope + method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and + nested scopes will get their own instance. Instances created by this lifestyle can be disposed when + the created scope gets disposed. + + The following example shows the usage of the ThreadScopedLifestyle class: + (Lifestyle.Scoped); + + using (container.BeginLifetimeScope()) + { + var instance1 = container.GetInstance(); + + // This call will return the same instance. + var instance2 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); + + // Create a nested scope. + using (container.BeginLifetimeScope()) + { + // A nested scope gets its own instance. + var instance3 = container.GetInstance(); + + Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); + + // This call will return the same instance. + var instance4 = container.GetInstance(); + + Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); + } + } + ]]> + - - - Determines whether a property should be injected by the container upon creation of its type. + + Initializes a new instance of the class. + The created and cached instance will be disposed when the created + instance gets disposed and when the created object implements + . - - The type being created for which the property should be injected. Note that this might a - different type than the type on which the property is declared (which might be a base class). - The property to check. - True when the property should be injected. - + + + Begins a new scope for the given . + Services, registered using the are cached during the + lifetime of that scope. The scope should be disposed explicitly. + + The container. + A new instance. + + Thrown when the is a null reference. + + + + + - A known relationship defines a relationship between two types. The Diagnostics Debug View uses this - information to spot possible misconfigurations. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method never returns null. - - Initializes a new instance of the class. - The implementation type of the parent type. - The lifestyle of the parent type. - The type that the parent depends on (it is injected into the parent). + + + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the implementation type of the parent type of the relationship. - The implementation type of the parent type of the relationship. + + + An instance of this type will be supplied to the + delegate that is that is supplied to the + RegisterConditional + overload that takes this delegate. This type contains information about the open generic service that + is about to be created and it allows the user to examine the given instance to decide whether this + implementation should be created or not. + + + Please see the + Register + method for more information. + - - Gets the lifestyle of the parent type of the relationship. - The lifestyle of the parent type of the relationship. + + Gets the closed generic service type that is to be created. + The closed generic service type. - - Gets the type that the parent depends on (it is injected into the parent). - The type that the parent depends on. + + Gets the closed generic implementation type that will be created by the container. + The implementation type. - - Serves as a hash function for a particular type. - A hash code for the current . + + Gets a value indicating whether a previous Register registration has already + been applied for the given . + The indication whether the event has been handled. - + - Determines whether the specified is equal to the current - . + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. - The object to compare with the current object. - True if the specified is equal to the current - ; otherwise, false. + The or null. - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + A Registration implements lifestyle based caching for a single service and allows building an + that describes the creation of the service. + + implementations create a new Registration instance for each registered + service type. s returned from the + BuildExpression method can be + intercepted by any event registered with , have + initializers + applied, and the caching particular to its lifestyle have been applied. Interception using the + Container.ExpressionBuilt will not + be applied in the Registration, but will be applied in . + + See the documentation for an example. + - - Initializes a new instance of the struct. - The scope factory. - The container. - - - Gets the lazily initialized Scope of the current LazyScope instance. - The current Scope or null. - - + - This is an internal type. Only depend on this type when you want to be absolutely sure a future - version of the framework will break your code. + Initializes a new instance of the class. - Implementation type. + The this that created this registration. + The instance for this registration. + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - - Initializes a new instance of the - struct. - The registration. + + Gets the type that this instance will create. + The type that this instance will create. - - Gets the lazily initialized instance for the of the current LazyScopedRegistration. - The scope that is used to retrieve the instance. - The cached instance. + + Gets the this that created this registration. + The this that created this registration. - + + Gets the instance for this registration. + The instance for this registration. + + + Gets or sets a value indicating whether this registration object contains a user + supplied instanceCreator factory delegate. + + - Hooks into the building process and adds a decorator if needed. + Builds a new with the correct caching (according to the specifications of + its ) applied. + An . - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diaal. + Gets the list of instances. Note that the list is only available + after calling . + A new array containing the instances. - - Gets the lifestyles that causes the registrations to be conflicting. - instances. - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the registration that caused this warning. - /// An . - - + - Gets the list of registrations that are in conflict with the . + Initializes an already created instance and applies properties and initializers to that instance. - A list of instances. + + This method is especially useful in integration scenarios where the given platform is in control + of creating certain types. By passing the instance created by the platform to this method, the + container is still able to apply any properties (as defined using a custom + ) and by applying any initializers. + + The instance to initialize. + Thrown when is a null reference + (Nothing in VB). + Thrown when the supplied is not + of type . - + - Entry point for doing diagnostic analysis on instances. + Suppressing the supplied for the given registration. - - The following example shows the usage of the Analyzer class: - - + The . + The justification of why the warning must be suppressed. + Thrown when is a null + reference. + Thrown when either is an + empty string or when is not a valid value of . + - + - Analyzes the supplied instance. + Builds a delegate for the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers + that are applicable to the given (if any). - The container instance to analyze. - A collection of sub types that describe the diagnostic - warnings and messages. + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + A delegate. + Thrown when one of the arguments is a null reference. - + - Diagnostic result for a warning about a concrete type that was not registered explicitly and was not - resolved using unregistered type resolution, but was created by the container using the transient - lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Builds a delegate for the creation of . + The returned might be intercepted by a + Container.ExpressionBuilding event, + and the creation of the will have been wrapped with a + delegate that executes the registered + initializers + that are applicable to the given (if any). + A delegate. + Thrown when one of the arguments is a null reference. - - Gets a collection of instances that describe all - container-registered dependencies for the given component. - List of objects. - - + - A hierarchical group of . + Builds an that describes the creation of the + using the supplied . The returned might + be intercepted by a + Container.ExpressionBuilding event, + and the will have been wrapped with a delegate that executes the + registered initializers that are + applicable to the given (if any). + The interface or base type that can be used to retrieve instances. + + The delegate supplied by the user that allows building or creating new instances. + An . + Thrown when one of the arguments is a null reference. - + - Gets the base that describes the service types of its - . The value often be either (in case this is a - root group) or a partial generic type to allow hierarchical grouping of a large number of related - generic types. + Builds an that describes the creation of . + The returned might be intercepted + by a Container.ExpressionBuilding + event, and the creation of the will have been wrapped with + a delegate that executes the registered + initializers that are applicable + to the InstanceProducer's ServiceType (if any). - The . + An . + Thrown when one of the arguments is a null reference. - - Gets the friendly name of the group. - The name. + + Implements a cache for implementations. + + is thread-safe can be used over multiple threads concurrently, but note that the + cached instances might not be thread-safe. + - - Gets the description of the group. - The description. + + Initializes a new instance of the class. - - Gets the diagnostic type of all grouped instances. - The . + + Initializes a new instance of the class. + The container instance that the scope belongs to. - - Gets the parent or null (Nothing in VB) when this is the - root group. - The . + + Gets the container instance that this scope belongs to. + The instance. - - Gets the collection of child s. - A collection of elements. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - - Gets the collection of instances. - /// A collection of elements. + + Gets an instance of the given for the current scope. + The type of the service to resolve. + An instance of the given service type. - + - Base class for types that hold information about a single diagnostic message or warning for a - particular type or part of the configuration. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Gets the severity of this result. - The . - - - Gets the diagnostic type of this result. - The . - - - Gets the service type to which this warning is related. - A . - - - Gets the description of the diagnostic result. - A with the description. + + + Adds the to the list of items that will get disposed when the + scope ends. + + + Instances that are registered for disposal, will be disposed in opposite order of registration and + they are guaranteed to be disposed when is called (even when + exceptions are thrown). This mimics the behavior of the C# and VB using statements, + where the method is called inside the finally block. + + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Thrown when the scope has been disposed. - - Gets the documentation URL of the diagnostic result. - A with the URL. + + + Retrieves an item from the scope stored by the given or null when no + item is stored by that key. + + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both GetItem and . + + The key of the item to retrieve. + The stored item or null (Nothing in VB). + Thrown when one of the supplied arguments is a null + reference (Nothing in VB). - - Gets the hierarchical group to which this diagnostic result belongs. - The . + + Stores an item by the given in the scope. + + Thread-safety: Calls to this method are thread-safe, but users should take proper + percussions when they call both and SetItem. + + The key of the item to insert or override. + The actual item. May be null. + Thrown when paramref name="key"/> is a null reference + (Nothing in VB). - + - Specifies the list of severity levels that diagnostic results can have. + Returns the list of instances that will be disposed of when this + instance is being disposed. The list contains scoped instances that are cached in this instance, + and instances explicitly registered for disposal using . The instances are returned + in order of creation/registration. When Scope.Dispose is called, the scope will ensure + is called on each instance in this list. The instance will be disposed in opposite + order as they appear in the list. + The list of instances that will be disposed of when this + instance is being disposed. - - Information messages and tips about the configuration. - - - Warning messages that are likely to cause problems in your application. + + Releases all instances that are cached by the object. - + - Specifies the list of diagnostic types that are currently supported by the diagnostic - . Note that new diagnostic types might be added in future versions. - For more information, please read the - Diagnosing your configuration using the Diagnostic - Services wiki documentation. + Releases all instances that are cached by the object. + False when only unmanaged resources should be released. - + - Diagnostic type that warns about - a concrete type that was not registered explicitly and was not resolved using unregistered type - resolution, but was created by the container using the transient lifestyle. - For more information, see: https://simpleinjector.org/diaut. + Base class for scoped lifestyles. A scoped lifestyle caches instances for the duration of an implicitly + or explicitly defined scope. Such scope can be an (implicitly defined) web request or an explicitly + defined Lifetime Scope. The lifetime of instances registered with a scoped lifestyle is always equal + or bigger than one-instance-per-object-graph. In other words, a call to GetInstance() will never create + more than one instance of such registered type. - + - Diagnostic type that warns when a - component depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Gets the scoped lifestyle that allows Scoped registrations to be resolved direclty from the + by calling . This allows multiple + scopes to be active and overlap within the same logical context, such as a single thread, or an + asynchronous context. - - - Diagnostic type that warns when a - component depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. - + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Thrown when is null (Nothing in VB) + or an empty string. + + + Initializes a new instance of the class. + The user friendly name of this lifestyle. + Signals the lifestyle whether instances should be + disposed or not. + Thrown when is null (Nothing in VB) + or an empty string. + + + Gets the length of the lifestyle. + The representing the length of this lifestyle. - + - Diagnostic type that warns when a component depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Allows registering an delegate that will be called when the scope ends, + but before the scope disposes any instances. + + During the call to all registered delegates are + processed in the order of registration. Do note that registered actions are not guaranteed + to run. In case an exception is thrown during the call to , the + will stop running any actions that might not have been invoked at that point. + Instances that are registered for disposal using on the other + hand, are guaranteed to be disposed. Note that registered actions won't be invoked during a call + to . + + The instance. + The delegate to run when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when multiple registrations map to the same component and - lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Adds the to the list of items that will get disposed when the + scope ends. + The instance. + The instance that should be disposed when the scope ends. + Thrown when one of the arguments is a null reference + (Nothing in VB). + Will be thrown when there is currently no active + scope for the supplied . - + - Diagnostic type that warns when a component is registered as transient, while implementing - . - For more information, see: https://simpleinjector.org/diadt. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - + - Diagnostic type that warns when multiple registrations exist that map to the same component but - with different lifestyles, which will cause the component to be cached in different -possibly - incompatible- ways. - For more information, see: https://simpleinjector.org/diaal. + Creates a delegate that upon invocation return the current for this + lifestyle and the given , or null when the delegate is executed outside + the context of such scope. + The container for which the delegate gets created. + A delegate. This method should never return null. - + - Diagnostic result for a warning about a component that is registered as transient, but implements - . - For more information, see: https://simpleinjector.org/diadt. + Creates a new instance defining the creation of the + specified using the supplied + with the caching as specified by this lifestyle. + The interface or base type that can be used to retrieve the instances. + A delegate that will create a new instance of + every time it is called. + The instance for which a + must be created. + A new instance. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result for a warning about a - component that depends on a service with a lifestyle that is shorter than that of the component. - For more information, see: https://simpleinjector.org/dialm. + Creates a new instance defining the creation of the + specified with the caching as specified by this lifestyle. + The concrete type that will be registered. + The instance for which a + must be created. + A new instance. - - Gets the object that describes the relationship between the component and its dependency. - A instance. - - + - Diagnostic result that warns about a - component that depends on an unregistered concrete type and this concrete type has a lifestyle that is - different than the lifestyle of an explicitly registered type that uses this concrete type as its - implementation. - For more information, see: https://simpleinjector.org/diasc. + Returns the current for this lifestyle and the given + , or null when this method is executed outside the context of a scope. + + By default, this method calls the method and invokes the + returned delegate. This method can be overridden to provide an optimized way for getting the + current scope. + + The container instance that is related to the scope to return. + A instance or null when there is no scope active in this context. - - Gets the instance that describes the current relationship between the checked component - and the short-circuited dependency. - The . - - - - Gets the collection of registrations that have the component's current dependency as - implementation type, but have a lifestyle that is different than the current dependency. - - A collection of instances. + + Internal helper for string resources. - + - Diagnostic result that warns about a component that depends on (too) many services. - For more information, see: https://simpleinjector.org/diasr. + Contains contextual information for creating an implementation type. + + Please see the + Register + method for more information. + - - Gets the created type. - A . - - - Gets the list of registrations that are dependencies of the . - A collection of instances. + + Gets the closed generic service type that is to be created. + The closed generic service type. - + - Diagnostic result that warns about when a multiple registrations map to the same implementation type - and lifestyle, which might cause multiple instances to be created during the lifespan of that lifestyle. - For more information, see: https://simpleinjector.org/diatl. + Gets the contextual information of the consuming component that directly depends on the resolved + service. This property will return null in case the service is resolved directly from the container. + The or null. - - Gets the lifestyle on which instances are torn. - A . - - - Gets the implementation type that the affected registrations map to. - A . - - - Gets the list of registrations that are affected by this warning. - A list of instances. - - + - A map containing a generic argument (such as T) and the concrete type (such as Int32) that it - represents. + Returns a list of base types and interfaces of implementationType that either + equal to serviceType or are closed or partially closed version of serviceType (in case + serviceType itself is generic). + So: + -in case serviceType is non generic, only serviceType will be returned. + -If implementationType is open generic, serviceType will be returned (or a partially closed + version of serviceType is returned). + -If serviceType is generic and implementationType is not, a closed version of serviceType will + be returned. + -If implementationType implements multiple (partially) closed versions of serviceType, all those + (partially) closed versions will be returned. + The (open generic) service type to match. + The implementationType to search. + A list of types. - - Implements equality. Needed for doing LINQ distinct operations. - The other to compare to. - True or false. - - - Overrides the default hash code. Needed for doing LINQ distinct operations. - An 32 bit integer. + + Useful extensions on . - + - Container controlled collections can be supplied with both Type objects or direct Registration - instances. + Builds an easy to read type name. Namespaces will be omitted, and generic types will be displayed + in a C#-like syntax. Ideal for reporting type names in exception messages. + The type to convert. + A human-readable string representation of that type. + Thrown when the supplied argument is a null reference. - - Will never be null. Can be open-generic. - - - Can be null. - - + - Gets a message that describes the current exception. + Returns true is there is a closed version of the supplied + that is assignable from the current . This method returns true when either + itself, one of its base classes or one of its implemented interfaces is a + closed version of ; otherwise false. - The error message that explains the reason for the exception, or an empty string(""). + The type to check. + The generic type definition to match. + True when type is assignable; otherwise false. - + - Allows verifying whether a given type has a direct or indirect dependency on itself. Verifying is done - by preventing recursive calls to an InstanceProducer. A CyclicDependencyValidator instance checks a - single InstanceProducer and therefore a single service type. + Gets the single closed version of that the current + is assignable from. In case none or multiple matching closed types are + found, and exception is thrown. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + The matching closed type. + Thrown when one of the arguments is a null reference. + Thrown when is not + a generic type or when none of the base classes or implemented interfaces of + are closed-versions of . + Thrown when multiple matching closed generic types + are found. - + - Allows retrieving the concrete types of the generic type arguments of that must be used to create a - closed generic implementation of a given open generic implementation, based on on the concrete - arguments of the given closed base type. + Gets the list of closed versions of that the current + is assignable from. Example: When is a type + class X : IX<int>, IFoo<string> and + is type IX<T>: this method will return type IX<int>. + The type to check. + The generic type definition to match. + A list of matching closed generic types. - + - Helper class for building closed generic type for a given open generic type and a closed generic base. + Defines options to control the types returned from the + GetTypesToRegister + method. For a type to be returned, it should match all the conditions described by the class's + properties. In other words, in case the searched assembly contains a generic type, that is both a + decorator and a composite, it will only be returned by GetTypesToRegister in case both + , and + are set to true. - - Result of the GenericTypeBuilder. + + Initializes a new instance of the class. - + - A open generic type with the concrete arguments that can be used to create a closed generic type. + Gets or sets a value indicating whether decorator types should be included in the result. The default + value of this property is false. A type is considered a decorator if the type's constructor + contains a parameter of the type that exactly matches the serviceType argument, + supplied to the + GetTypesToRegister + method, or when there is a argument where T matches the + serviceType argument. + A boolean. - - This interface is not meant for public use. - - - Please do not use. - Do not use. - - - PLease do not use. - Do not use. - - + - Allows validating an ArgumentMapping. + Gets or sets a value indicating whether generic type definitions (types that have + TypeInfo.IsGenericTypeDefinition + set to true) + should be included in the result. The default value for this property is false. + A boolean. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. An execution context scope flows with the logical execution context. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Gets or sets a value indicating whether composite types should be included in the result. The default + value of this property is true. A type is considered a composite if the type's constructor + contains a parameter of IEnumerable<T>, ICollection<T>, + IList<T>, IReadOnlyCollection<T>, + IReadOnlyList<T> or T[] (array of T), where T + exactly matches the serviceType argument, supplied to the + GetTypesToRegister + method. - - The following example shows the usage of the ExecutionContextScopeLifestyle class: - (Lifestyle.Scoped); - - using (AsyncScopedLifestyle.BeginScope(container)) - { - var instance1 = container.GetInstance(); - // ... - } - ]]> - + A boolean. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + Provides data for and interaction with the + ResolveUnregisteredType event of + the . An observer can check the + to see whether the unregistered type can be handled. The + method can be called to register a delegate + that allows creation of instances of the unregistered for this and future requests. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - + + Gets the unregistered service type that is currently requested. + The unregistered service type that is currently requested. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Gets a value indicating whether the event represented by this instance has been handled. + This property will return true when has been called on + this instance. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. + The indication whether the event has been handled. - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Registers a delegate that allows creation of instances of the type + expressed by the for this and future requests. The delegate + will be caches and future requests will directly call that delegate. - The container for which the delegate gets created. - A delegate. This method never returns null. + The delegate that allows creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Forwards CreateRegistration calls to the lifestyle that is returned from the registered - container.Options.LifestyleSelectionBehavior. + Registers an that describes the creation of instances of the type + expressed by the for this and future requests. The delegate + will be cached and future requests will directly use that expression or the compiled delegate. + + NOTE: If possible, use the Register(Registration) overload, + since this allows the analysis services to determine any configuration errors on the lifestyle of + the registration. + + The expression that describes the creation of instances of the type + expressed by the . + Thrown when the is a + null reference. + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - + - Defines a lifestyle that caches instances during the lifetime of an explicitly defined scope using the - BeginScope - method. A scope is thread-specific, each thread should define its own scope. Scopes can be nested and - nested scopes will get their own instance. Instances created by this lifestyle can be disposed when - the created scope gets disposed. + Registers a that describes the creation of instances of the type + expressed by the for this and future requests. The + registration will be cached and future requests will directly call unon that registration, the + expression that it generates or the delegate that gets compiled from that expression. - - The following example shows the usage of the ThreadScopedLifestyle class: - (Lifestyle.Scoped); - - using (container.BeginLifetimeScope()) - { - var instance1 = container.GetInstance(); - - // This call will return the same instance. - var instance2 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance1, instance2)); - - // Create a nested scope. - using (container.BeginLifetimeScope()) - { - // A nested scope gets its own instance. - var instance3 = container.GetInstance(); - - Assert.IsFalse(object.ReferenceEquals(instance1, instance3)); - - // This call will return the same instance. - var instance4 = container.GetInstance(); - - Assert.IsTrue(object.ReferenceEquals(instance3, instance4)); - } - } - ]]> - + The registration that describes the creation of instances according to + the registration's lifestyle of the type expressed by the . + Thrown when the is a + null reference. + Thrown when the is a + not exactly of type where T equals the . + + Thrown when multiple observers that have registered to + the ResolveUnregisteredType event + called this method for the same type. - - Initializes a new instance of the class. - The created and cached instance will be disposed when the created - instance gets disposed and when the created object implements - . + + + This enumeration has defines in which way the container should run the verification process. - - - Begins a new scope for the given . - Services, registered using the are cached during the - lifetime of that scope. The scope should be disposed explicitly. - - The container. - A new instance. - - Thrown when the is a null reference. - - - - - + - Creates a delegate that upon invocation return the current for this - lifestyle and the given , or null when the delegate is executed outside - the context of such scope. + Specifies that the container performs verification only, which means that it will test whether + all registrations can be constructed by iterating the registrations and letting the container + create at least one instance of each registration. An + will be thrown in case the configuration is invalid. - The container for which the delegate gets created. - A delegate. This method never returns null. - + - Returns the current for this lifestyle and the given - , or null when this method is executed outside the context of a scope. + Specifies that the container will run diagnostic analysis after the verification succeeded. The + container will diagnose the configuration with a subset of the available diagnostic warnings, that + are most likely an indication of a configuration mistake. A complete set of diagnostic warnings + can be retrieved by calling + Analyzer.Analyze or by viewing the + container in the Visual Studio debugger, after the verification has succeeded. - The container instance that is related to the scope to return. - A instance or null when there is no scope active in this context. diff --git a/packages/System.Numerics.Vectors.4.4.0/System.Numerics.Vectors.4.4.0.nupkg b/packages/System.Numerics.Vectors.4.4.0/System.Numerics.Vectors.4.4.0.nupkg deleted file mode 100644 index c3cf74f535..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/System.Numerics.Vectors.4.4.0.nupkg and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.dll deleted file mode 100644 index ce46d5be85..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.dll and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.dll deleted file mode 100644 index 46308fdb3a..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.dll and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.dll deleted file mode 100644 index a808165acc..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.dll and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll deleted file mode 100644 index 46308fdb3a..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.dll deleted file mode 100644 index e91f855a12..0000000000 Binary files a/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.dll and /dev/null differ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.xml deleted file mode 100644 index 51297939a8..0000000000 --- a/packages/System.Numerics.Vectors.4.4.0/ref/net46/System.Numerics.Vectors.xml +++ /dev/null @@ -1,2597 +0,0 @@ - - - - System.Numerics.Vectors - - - - Represents a 3x2 matrix. - - - Creates a 3x2 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a rotation matrix using the given rotation in radians. - The amount of rotation, in radians. - The rotation matrix. - - - Creates a rotation matrix using the specified rotation in radians and a center point. - The amount of rotation, in radians. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified X and Y components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. - The uniform scale to use. - The center offset. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The center point. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the given scale. - The uniform scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale with an offset from the specified center point. - The scale to use. - The center offset. - The scaling matrix. - - - Creates a skew matrix from the specified angles in radians. - The X angle, in radians. - The Y angle, in radians. - The skew matrix. - - - Creates a skew matrix from the specified angles in radians and a center point. - The X angle, in radians. - The Y angle, in radians. - The center point. - The skew matrix. - - - Creates a translation matrix from the specified 2-dimensional vector. - The translation position. - The translation matrix. - - - Creates a translation matrix from the specified X and Y components. - The X position. - The Y position. - The translation matrix. - - - Returns a value that indicates whether this instance and another 3x2 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant for this matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - The multiplicative identify matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Represents a 4x4 matrix. - - - Creates a object from a specified object. - A 3x2 matrix. - - - Creates a 4x4 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the third element in the first row. - The value to assign to the fourth element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the third element in the second row. - The value to assign to the third element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - The value to assign to the third element in the third row. - The value to assign to the fourth element in the third row. - The value to assign to the first element in the fourth row. - The value to assign to the second element in the fourth row. - The value to assign to the third element in the fourth row. - The value to assign to the fourth element in the fourth row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a spherical billboard that rotates around a specified object position. - The position of the object that the billboard will rotate around. - The position of the camera. - The up vector of the camera. - The forward vector of the camera. - The created billboard. - - - Creates a cylindrical billboard that rotates around a specified axis. - The position of the object that the billboard will rotate around. - The position of the camera. - The axis to rotate the billboard around. - The forward vector of the camera. - The forward vector of the object. - The billboard matrix. - - - Creates a matrix that rotates around an arbitrary vector. - The axis to rotate around. - The angle to rotate around axis, in radians. - The rotation matrix. - - - Creates a rotation matrix from the specified Quaternion rotation value. - The source Quaternion. - The rotation matrix. - - - Creates a rotation matrix from the specified yaw, pitch, and roll. - The angle of rotation, in radians, around the Y axis. - The angle of rotation, in radians, around the X axis. - The angle of rotation, in radians, around the Z axis. - The rotation matrix. - - - Creates a view matrix. - The position of the camera. - The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. - The view matrix. - - - Creates an orthographic perspective matrix from the given view volume dimensions. - The width of the view volume. - The height of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a customized orthographic projection matrix. - The minimum X-value of the view volume. - The maximum X-value of the view volume. - The minimum Y-value of the view volume. - The maximum Y-value of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a perspective projection matrix from the given view volume dimensions. - The width of the view volume at the near view plane. - The height of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. - The field of view in the y direction, in radians. - The aspect ratio, defined as view space width divided by height. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a customized perspective projection matrix. - The minimum x-value of the view volume at the near view plane. - The maximum x-value of the view volume at the near view plane. - The minimum y-value of the view volume at the near view plane. - The maximum y-value of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a matrix that reflects the coordinate system about a specified plane. - The plane about which to create a reflection. - A new matrix expressing the reflection. - - - Creates a matrix for rotating points around the X axis. - The amount, in radians, by which to rotate around the X axis. - The rotation matrix. - - - Creates a matrix for rotating points around the X axis from a center point. - The amount, in radians, by which to rotate around the X axis. - The center point. - The rotation matrix. - - - The amount, in radians, by which to rotate around the Y axis from a center point. - The amount, in radians, by which to rotate around the Y-axis. - The center point. - The rotation matrix. - - - Creates a matrix for rotating points around the Y axis. - The amount, in radians, by which to rotate around the Y-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis. - The amount, in radians, by which to rotate around the Z-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis from a center point. - The amount, in radians, by which to rotate around the Z-axis. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a uniform scaling matrix that scale equally on each axis. - The uniform scaling factor. - The scaling matrix. - - - Creates a scaling matrix with a center point. - The vector that contains the amount to scale on each axis. - The center point. - The scaling matrix. - - - Creates a uniform scaling matrix that scales equally on each axis with a center point. - The uniform scaling factor. - The center point. - The scaling matrix. - - - Creates a scaling matrix from the specified X, Y, and Z components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The center point. - The scaling matrix. - - - Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. - The direction from which the light that will cast the shadow is coming. - The plane onto which the new matrix should flatten geometry so as to cast a shadow. - A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. - - - Creates a translation matrix from the specified 3-dimensional vector. - The amount to translate in each axis. - The translation matrix. - - - Creates a translation matrix from the specified X, Y, and Z components. - The amount to translate on the X axis. - The amount to translate on the Y axis. - The amount to translate on the Z axis. - The translation matrix. - - - Creates a world matrix with the specified parameters. - The position of the object. - The forward direction of the object. - The upward direction of the object. Its value is usually [0, 1, 0]. - The world matrix. - - - Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. - The source matrix. - When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. - When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. - When the method returns, contains the translation component of the transformation matrix if the operation succeeded. - true if matrix was decomposed successfully; otherwise, false. - - - Returns a value that indicates whether this instance and another 4x4 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant of the current 4x4 matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - Gets the multiplicative identity matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The third element of the first row. - - - - The fourth element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The third element of the second row. - - - - The fourth element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - The third element of the third row. - - - - The fourth element of the third row. - - - - The first element of the fourth row. - - - - The second element of the fourth row. - - - - The third element of the fourth row. - - - - The fourth element of the fourth row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to care - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Transforms the specified matrix by applying the specified Quaternion rotation. - The matrix to transform. - The rotation t apply. - The transformed matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Transposes the rows and columns of a matrix. - The matrix to transpose. - The transposed matrix. - - - Represents a three-dimensional plane. - - - Creates a object from a specified four-dimensional vector. - A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. - - - Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. - - - Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. - The X component of the normal. - The Y component of the normal. - The Z component of the normal. - The distance of the plane along its normal from the origin. - - - Creates a object that contains three specified points. - The first point defining the plane. - The second point defining the plane. - The third point defining the plane. - The plane containing the three points. - - - The distance of the plane along its normal from the origin. - - - - Calculates the dot product of a plane and a 4-dimensional vector. - The plane. - The four-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. - The plane. - The 3-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the vector of this plane. - The plane. - The three-dimensional vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another plane object are equal. - The other plane. - true if the two planes are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - The normal vector of the plane. - - - - Creates a new object whose normal vector is the source plane's normal vector normalized. - The source plane. - The normalized plane. - - - Returns a value that indicates whether two planes are equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether two planes are not equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the string representation of this plane object. - A string that represents this object. - - - Transforms a normalized plane by a 4x4 matrix. - The normalized plane to transform. - The transformation matrix to apply to plane. - The transformed plane. - - - Transforms a normalized plane by a Quaternion rotation. - The normalized plane to transform. - The Quaternion rotation to apply to the plane. - A new plane that results from applying the Quaternion rotation. - - - Represents a vector that is used to encode three-dimensional physical rotations. - - - Creates a quaternion from the specified vector and rotation parts. - The vector part of the quaternion. - The rotation part of the quaternion. - - - Constructs a quaternion from the specified components. - The value to assign to the X component of the quaternion. - The value to assign to the Y component of the quaternion. - The value to assign to the Z component of the quaternion. - The value to assign to the W component of the quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Concatenates two quaternions. - The first quaternion rotation in the series. - The second quaternion rotation in the series. - A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. - - - Returns the conjugate of a specified quaternion. - The quaternion. - A new quaternion that is the conjugate of value. - - - Creates a quaternion from a vector and an angle to rotate about the vector. - The vector to rotate around. - The angle, in radians, to rotate around the vector. - The newly created quaternion. - - - Creates a quaternion from the specified rotation matrix. - The rotation matrix. - The newly created quaternion. - - - Creates a new quaternion from the given yaw, pitch, and roll. - The yaw angle, in radians, around the Y axis. - The pitch angle, in radians, around the X axis. - The roll angle, in radians, around the Z axis. - The resulting quaternion. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Calculates the dot product of two quaternions. - The first quaternion. - The second quaternion. - The dot product. - - - Returns a value that indicates whether this instance and another quaternion are equal. - The other quaternion. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Gets a quaternion that represents no rotation. - A quaternion whose values are (0, 0, 0, 1). - - - Returns the inverse of a quaternion. - The quaternion. - The inverted quaternion. - - - Gets a value that indicates whether the current instance is the identity quaternion. - true if the current instance is the identity quaternion; otherwise, false. - - - Calculates the length of the quaternion. - The computed length of the quaternion. - - - Calculates the squared length of the quaternion. - The length squared of the quaternion. - - - Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. - The first quaternion. - The second quaternion. - The relative weight of quaternion2 in the interpolation. - The interpolated quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Divides each component of a specified by its length. - The quaternion to normalize. - The normalized quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Returns a value that indicates whether two quaternions are equal. - The first quaternion to compare. - The second quaternion to compare. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether two quaternions are not equal. - The first quaternion to compare. - The second quaternion to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Interpolates between two quaternions, using spherical linear interpolation. - The first quaternion. - The second quaternion. - The relative weight of the second quaternion in the interpolation. - The interpolated quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this quaternion. - The string representation of this quaternion. - - - The rotation component of the quaternion. - - - - The X value of the vector component of the quaternion. - - - - The Y value of the vector component of the quaternion. - - - - The Z value of the vector component of the quaternion. - - - - Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. - The vector type. T can be any primitive numeric type. - - - Creates a vector whose components are of a specified type. - The numeric type that defines the type of the components in the vector. - - - Creates a vector from a specified array. - A numeric array. - values is null. - - - Creates a vector from a specified array starting at a specified index position. - A numeric array. - The starting index position from which to create the vector. - values is null. - index is less than zero. -or- The length of values minus index is less than . - - - Copies the vector instance to a specified destination array. - The array to receive a copy of the vector values. - destination is null. - The number of elements in the current vector is greater than the number of elements available in the destination array. - - - Copies the vector instance to a specified destination array starting at a specified index position. - The array to receive a copy of the vector values. - The starting index in destination at which to begin the copy operation. - destination is null. - The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. - index is less than zero or greater than the last index in destination. - - - Returns the number of elements stored in the vector. - The number of elements stored in the vector. - Access to the property getter via reflection is not supported. - - - Returns a value that indicates whether this instance is equal to a specified vector. - The vector to compare with this instance. - true if the current instance and other are equal; otherwise, false. - - - Returns a value that indicates whether this instance is equal to a specified object. - The object to compare with this instance. - true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. - - - Returns the hash code for this instance. - The hash code. - - - Gets the element at a specified index. - The index of the element to return. - The element at index index. - index is less than zero. -or- index is greater than or equal to . - - - Returns a vector containing all ones. - A vector containing all ones. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise And of left and right. - - - Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise Or of the elements in left and right. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Returns a value that indicates whether each pair of elements in two specified vectors are equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise XOr of the elements in left and right. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Returns a value that indicates whether any single pair of elements in the specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if any element pairs in left and right are equal. false if no element pairs are equal. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar value. - The source vector. - A scalar value. - The scaled vector. - - - Multiplies a vector by the given scalar. - The scalar value. - The source vector. - The scaled vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The one's complement vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates a given vector. - The vector to negate. - The negated vector. - - - Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Returns the string representation of this vector using default formatting. - The string representation of this vector. - - - Returns the string representation of this vector using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns a vector containing all zeroes. - A vector containing all zeroes. - - - Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - - - Returns a new vector whose elements are the absolute values of the given vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The absolute value vector. - - - Returns a new vector whose values are the sum of each pair of elements from two given vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The summed vector. - - - Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of signed bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The vector type. T can be any primitive numeric type. - The new vector with elements selected based on the mask. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The divided vector. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The dot product. - - - Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether each pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left and right are equal; otherwise, false. - - - Returns a value that indicates whether any single pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element pair in left and right is equal; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. - - - Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. - true if vector operations are subject to hardware acceleration; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than or equal to the corresponding element in right; otherwise, false. - - - Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The maximum vector. - - - Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The minimum vector. - - - Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. - The scalar value. - The vector. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - Returns a new vector whose values are the product of each pair of elements in two specified vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The product vector. - - - Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. - The vector. - The scalar value. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose elements are the negation of the corresponding element in the specified vector. - The source vector. - The vector type. T can be any primitive numeric type. - The negated vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector whose elements are the square roots of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The square root vector. - - - Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The difference vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Represents a vector with two single-precision floating-point values. - - - Creates a new object whose two elements have the same value. - The value to assign to both elements. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of the vector. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 2 elements are equal to one. - A vector whose two elements are equal to one (that is, it returns the vector (1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 3x2 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 3x2 matrix. - The source vector. - The matrix. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0). - The vector (1,0). - - - Gets the vector (0,1). - The vector (0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - Returns a vector whose 2 elements are equal to zero. - A vector whose two elements are equal to zero (that is, it returns the vector (0,0). - - - Represents a vector with three single-precision floating-point values. - - - Creates a new object whose three elements have the same value. - The value to assign to all three elements. - - - Creates a new object from the specified object and the specified value. - The vector with two elements. - The additional value to assign to the field. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the cross product of two vectors. - The first vector. - The second vector. - The cross product. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 3 elements are equal to one. - A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0,0). - The vector (1,0,0). - - - Gets the vector (0,1,0). - The vector (0,1,0).. - - - Gets the vector (0,0,1). - The vector (0,0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 3 elements are equal to zero. - A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). - - - Represents a vector with four single-precision floating-point values. - - - Creates a new object whose four elements have the same value. - The value to assign to all four elements. - - - Constructs a new object from the specified object and a W component. - The vector to use for the X, Y, and Z components. - The W component. - - - Creates a new object from the specified object and a Z and a W component. - The vector to use for the X and Y components. - The Z component. - The W component. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 4 elements are equal to one. - Returns . - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a four-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a four-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a three-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a two-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a two-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a three-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Gets the vector (0,0,0,1). - The vector (0,0,0,1). - - - Gets the vector (1,0,0,0). - The vector (1,0,0,0). - - - Gets the vector (0,1,0,0). - The vector (0,1,0,0).. - - - Gets a vector whose 4 elements are equal to zero. - The vector (0,0,1,0). - - - The W component of the vector. - - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 4 elements are equal to zero. - A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - - - \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard1.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.4.0/ref/netstandard1.0/System.Numerics.Vectors.xml deleted file mode 100644 index 51297939a8..0000000000 --- a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard1.0/System.Numerics.Vectors.xml +++ /dev/null @@ -1,2597 +0,0 @@ - - - - System.Numerics.Vectors - - - - Represents a 3x2 matrix. - - - Creates a 3x2 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a rotation matrix using the given rotation in radians. - The amount of rotation, in radians. - The rotation matrix. - - - Creates a rotation matrix using the specified rotation in radians and a center point. - The amount of rotation, in radians. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified X and Y components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. - The uniform scale to use. - The center offset. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The center point. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the given scale. - The uniform scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale with an offset from the specified center point. - The scale to use. - The center offset. - The scaling matrix. - - - Creates a skew matrix from the specified angles in radians. - The X angle, in radians. - The Y angle, in radians. - The skew matrix. - - - Creates a skew matrix from the specified angles in radians and a center point. - The X angle, in radians. - The Y angle, in radians. - The center point. - The skew matrix. - - - Creates a translation matrix from the specified 2-dimensional vector. - The translation position. - The translation matrix. - - - Creates a translation matrix from the specified X and Y components. - The X position. - The Y position. - The translation matrix. - - - Returns a value that indicates whether this instance and another 3x2 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant for this matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - The multiplicative identify matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Represents a 4x4 matrix. - - - Creates a object from a specified object. - A 3x2 matrix. - - - Creates a 4x4 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the third element in the first row. - The value to assign to the fourth element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the third element in the second row. - The value to assign to the third element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - The value to assign to the third element in the third row. - The value to assign to the fourth element in the third row. - The value to assign to the first element in the fourth row. - The value to assign to the second element in the fourth row. - The value to assign to the third element in the fourth row. - The value to assign to the fourth element in the fourth row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a spherical billboard that rotates around a specified object position. - The position of the object that the billboard will rotate around. - The position of the camera. - The up vector of the camera. - The forward vector of the camera. - The created billboard. - - - Creates a cylindrical billboard that rotates around a specified axis. - The position of the object that the billboard will rotate around. - The position of the camera. - The axis to rotate the billboard around. - The forward vector of the camera. - The forward vector of the object. - The billboard matrix. - - - Creates a matrix that rotates around an arbitrary vector. - The axis to rotate around. - The angle to rotate around axis, in radians. - The rotation matrix. - - - Creates a rotation matrix from the specified Quaternion rotation value. - The source Quaternion. - The rotation matrix. - - - Creates a rotation matrix from the specified yaw, pitch, and roll. - The angle of rotation, in radians, around the Y axis. - The angle of rotation, in radians, around the X axis. - The angle of rotation, in radians, around the Z axis. - The rotation matrix. - - - Creates a view matrix. - The position of the camera. - The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. - The view matrix. - - - Creates an orthographic perspective matrix from the given view volume dimensions. - The width of the view volume. - The height of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a customized orthographic projection matrix. - The minimum X-value of the view volume. - The maximum X-value of the view volume. - The minimum Y-value of the view volume. - The maximum Y-value of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a perspective projection matrix from the given view volume dimensions. - The width of the view volume at the near view plane. - The height of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. - The field of view in the y direction, in radians. - The aspect ratio, defined as view space width divided by height. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a customized perspective projection matrix. - The minimum x-value of the view volume at the near view plane. - The maximum x-value of the view volume at the near view plane. - The minimum y-value of the view volume at the near view plane. - The maximum y-value of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a matrix that reflects the coordinate system about a specified plane. - The plane about which to create a reflection. - A new matrix expressing the reflection. - - - Creates a matrix for rotating points around the X axis. - The amount, in radians, by which to rotate around the X axis. - The rotation matrix. - - - Creates a matrix for rotating points around the X axis from a center point. - The amount, in radians, by which to rotate around the X axis. - The center point. - The rotation matrix. - - - The amount, in radians, by which to rotate around the Y axis from a center point. - The amount, in radians, by which to rotate around the Y-axis. - The center point. - The rotation matrix. - - - Creates a matrix for rotating points around the Y axis. - The amount, in radians, by which to rotate around the Y-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis. - The amount, in radians, by which to rotate around the Z-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis from a center point. - The amount, in radians, by which to rotate around the Z-axis. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a uniform scaling matrix that scale equally on each axis. - The uniform scaling factor. - The scaling matrix. - - - Creates a scaling matrix with a center point. - The vector that contains the amount to scale on each axis. - The center point. - The scaling matrix. - - - Creates a uniform scaling matrix that scales equally on each axis with a center point. - The uniform scaling factor. - The center point. - The scaling matrix. - - - Creates a scaling matrix from the specified X, Y, and Z components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The center point. - The scaling matrix. - - - Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. - The direction from which the light that will cast the shadow is coming. - The plane onto which the new matrix should flatten geometry so as to cast a shadow. - A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. - - - Creates a translation matrix from the specified 3-dimensional vector. - The amount to translate in each axis. - The translation matrix. - - - Creates a translation matrix from the specified X, Y, and Z components. - The amount to translate on the X axis. - The amount to translate on the Y axis. - The amount to translate on the Z axis. - The translation matrix. - - - Creates a world matrix with the specified parameters. - The position of the object. - The forward direction of the object. - The upward direction of the object. Its value is usually [0, 1, 0]. - The world matrix. - - - Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. - The source matrix. - When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. - When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. - When the method returns, contains the translation component of the transformation matrix if the operation succeeded. - true if matrix was decomposed successfully; otherwise, false. - - - Returns a value that indicates whether this instance and another 4x4 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant of the current 4x4 matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - Gets the multiplicative identity matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The third element of the first row. - - - - The fourth element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The third element of the second row. - - - - The fourth element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - The third element of the third row. - - - - The fourth element of the third row. - - - - The first element of the fourth row. - - - - The second element of the fourth row. - - - - The third element of the fourth row. - - - - The fourth element of the fourth row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to care - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Transforms the specified matrix by applying the specified Quaternion rotation. - The matrix to transform. - The rotation t apply. - The transformed matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Transposes the rows and columns of a matrix. - The matrix to transpose. - The transposed matrix. - - - Represents a three-dimensional plane. - - - Creates a object from a specified four-dimensional vector. - A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. - - - Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. - - - Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. - The X component of the normal. - The Y component of the normal. - The Z component of the normal. - The distance of the plane along its normal from the origin. - - - Creates a object that contains three specified points. - The first point defining the plane. - The second point defining the plane. - The third point defining the plane. - The plane containing the three points. - - - The distance of the plane along its normal from the origin. - - - - Calculates the dot product of a plane and a 4-dimensional vector. - The plane. - The four-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. - The plane. - The 3-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the vector of this plane. - The plane. - The three-dimensional vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another plane object are equal. - The other plane. - true if the two planes are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - The normal vector of the plane. - - - - Creates a new object whose normal vector is the source plane's normal vector normalized. - The source plane. - The normalized plane. - - - Returns a value that indicates whether two planes are equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether two planes are not equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the string representation of this plane object. - A string that represents this object. - - - Transforms a normalized plane by a 4x4 matrix. - The normalized plane to transform. - The transformation matrix to apply to plane. - The transformed plane. - - - Transforms a normalized plane by a Quaternion rotation. - The normalized plane to transform. - The Quaternion rotation to apply to the plane. - A new plane that results from applying the Quaternion rotation. - - - Represents a vector that is used to encode three-dimensional physical rotations. - - - Creates a quaternion from the specified vector and rotation parts. - The vector part of the quaternion. - The rotation part of the quaternion. - - - Constructs a quaternion from the specified components. - The value to assign to the X component of the quaternion. - The value to assign to the Y component of the quaternion. - The value to assign to the Z component of the quaternion. - The value to assign to the W component of the quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Concatenates two quaternions. - The first quaternion rotation in the series. - The second quaternion rotation in the series. - A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. - - - Returns the conjugate of a specified quaternion. - The quaternion. - A new quaternion that is the conjugate of value. - - - Creates a quaternion from a vector and an angle to rotate about the vector. - The vector to rotate around. - The angle, in radians, to rotate around the vector. - The newly created quaternion. - - - Creates a quaternion from the specified rotation matrix. - The rotation matrix. - The newly created quaternion. - - - Creates a new quaternion from the given yaw, pitch, and roll. - The yaw angle, in radians, around the Y axis. - The pitch angle, in radians, around the X axis. - The roll angle, in radians, around the Z axis. - The resulting quaternion. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Calculates the dot product of two quaternions. - The first quaternion. - The second quaternion. - The dot product. - - - Returns a value that indicates whether this instance and another quaternion are equal. - The other quaternion. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Gets a quaternion that represents no rotation. - A quaternion whose values are (0, 0, 0, 1). - - - Returns the inverse of a quaternion. - The quaternion. - The inverted quaternion. - - - Gets a value that indicates whether the current instance is the identity quaternion. - true if the current instance is the identity quaternion; otherwise, false. - - - Calculates the length of the quaternion. - The computed length of the quaternion. - - - Calculates the squared length of the quaternion. - The length squared of the quaternion. - - - Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. - The first quaternion. - The second quaternion. - The relative weight of quaternion2 in the interpolation. - The interpolated quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Divides each component of a specified by its length. - The quaternion to normalize. - The normalized quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Returns a value that indicates whether two quaternions are equal. - The first quaternion to compare. - The second quaternion to compare. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether two quaternions are not equal. - The first quaternion to compare. - The second quaternion to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Interpolates between two quaternions, using spherical linear interpolation. - The first quaternion. - The second quaternion. - The relative weight of the second quaternion in the interpolation. - The interpolated quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this quaternion. - The string representation of this quaternion. - - - The rotation component of the quaternion. - - - - The X value of the vector component of the quaternion. - - - - The Y value of the vector component of the quaternion. - - - - The Z value of the vector component of the quaternion. - - - - Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. - The vector type. T can be any primitive numeric type. - - - Creates a vector whose components are of a specified type. - The numeric type that defines the type of the components in the vector. - - - Creates a vector from a specified array. - A numeric array. - values is null. - - - Creates a vector from a specified array starting at a specified index position. - A numeric array. - The starting index position from which to create the vector. - values is null. - index is less than zero. -or- The length of values minus index is less than . - - - Copies the vector instance to a specified destination array. - The array to receive a copy of the vector values. - destination is null. - The number of elements in the current vector is greater than the number of elements available in the destination array. - - - Copies the vector instance to a specified destination array starting at a specified index position. - The array to receive a copy of the vector values. - The starting index in destination at which to begin the copy operation. - destination is null. - The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. - index is less than zero or greater than the last index in destination. - - - Returns the number of elements stored in the vector. - The number of elements stored in the vector. - Access to the property getter via reflection is not supported. - - - Returns a value that indicates whether this instance is equal to a specified vector. - The vector to compare with this instance. - true if the current instance and other are equal; otherwise, false. - - - Returns a value that indicates whether this instance is equal to a specified object. - The object to compare with this instance. - true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. - - - Returns the hash code for this instance. - The hash code. - - - Gets the element at a specified index. - The index of the element to return. - The element at index index. - index is less than zero. -or- index is greater than or equal to . - - - Returns a vector containing all ones. - A vector containing all ones. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise And of left and right. - - - Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise Or of the elements in left and right. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Returns a value that indicates whether each pair of elements in two specified vectors are equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise XOr of the elements in left and right. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Returns a value that indicates whether any single pair of elements in the specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if any element pairs in left and right are equal. false if no element pairs are equal. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar value. - The source vector. - A scalar value. - The scaled vector. - - - Multiplies a vector by the given scalar. - The scalar value. - The source vector. - The scaled vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The one's complement vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates a given vector. - The vector to negate. - The negated vector. - - - Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Returns the string representation of this vector using default formatting. - The string representation of this vector. - - - Returns the string representation of this vector using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns a vector containing all zeroes. - A vector containing all zeroes. - - - Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - - - Returns a new vector whose elements are the absolute values of the given vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The absolute value vector. - - - Returns a new vector whose values are the sum of each pair of elements from two given vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The summed vector. - - - Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of signed bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The vector type. T can be any primitive numeric type. - The new vector with elements selected based on the mask. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The divided vector. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The dot product. - - - Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether each pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left and right are equal; otherwise, false. - - - Returns a value that indicates whether any single pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element pair in left and right is equal; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. - - - Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. - true if vector operations are subject to hardware acceleration; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than or equal to the corresponding element in right; otherwise, false. - - - Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The maximum vector. - - - Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The minimum vector. - - - Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. - The scalar value. - The vector. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - Returns a new vector whose values are the product of each pair of elements in two specified vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The product vector. - - - Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. - The vector. - The scalar value. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose elements are the negation of the corresponding element in the specified vector. - The source vector. - The vector type. T can be any primitive numeric type. - The negated vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector whose elements are the square roots of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The square root vector. - - - Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The difference vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Represents a vector with two single-precision floating-point values. - - - Creates a new object whose two elements have the same value. - The value to assign to both elements. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of the vector. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 2 elements are equal to one. - A vector whose two elements are equal to one (that is, it returns the vector (1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 3x2 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 3x2 matrix. - The source vector. - The matrix. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0). - The vector (1,0). - - - Gets the vector (0,1). - The vector (0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - Returns a vector whose 2 elements are equal to zero. - A vector whose two elements are equal to zero (that is, it returns the vector (0,0). - - - Represents a vector with three single-precision floating-point values. - - - Creates a new object whose three elements have the same value. - The value to assign to all three elements. - - - Creates a new object from the specified object and the specified value. - The vector with two elements. - The additional value to assign to the field. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the cross product of two vectors. - The first vector. - The second vector. - The cross product. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 3 elements are equal to one. - A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0,0). - The vector (1,0,0). - - - Gets the vector (0,1,0). - The vector (0,1,0).. - - - Gets the vector (0,0,1). - The vector (0,0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 3 elements are equal to zero. - A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). - - - Represents a vector with four single-precision floating-point values. - - - Creates a new object whose four elements have the same value. - The value to assign to all four elements. - - - Constructs a new object from the specified object and a W component. - The vector to use for the X, Y, and Z components. - The W component. - - - Creates a new object from the specified object and a Z and a W component. - The vector to use for the X and Y components. - The Z component. - The W component. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 4 elements are equal to one. - Returns . - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a four-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a four-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a three-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a two-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a two-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a three-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Gets the vector (0,0,0,1). - The vector (0,0,0,1). - - - Gets the vector (1,0,0,0). - The vector (1,0,0,0). - - - Gets the vector (0,1,0,0). - The vector (0,1,0,0).. - - - Gets a vector whose 4 elements are equal to zero. - The vector (0,0,1,0). - - - The W component of the vector. - - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 4 elements are equal to zero. - A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - - - \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.4.0/ref/netstandard2.0/System.Numerics.Vectors.xml deleted file mode 100644 index 51297939a8..0000000000 --- a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard2.0/System.Numerics.Vectors.xml +++ /dev/null @@ -1,2597 +0,0 @@ - - - - System.Numerics.Vectors - - - - Represents a 3x2 matrix. - - - Creates a 3x2 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a rotation matrix using the given rotation in radians. - The amount of rotation, in radians. - The rotation matrix. - - - Creates a rotation matrix using the specified rotation in radians and a center point. - The amount of rotation, in radians. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified X and Y components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. - The uniform scale to use. - The center offset. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The center point. - The scaling matrix. - - - Creates a scaling matrix that scales uniformly with the given scale. - The uniform scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a scaling matrix from the specified vector scale with an offset from the specified center point. - The scale to use. - The center offset. - The scaling matrix. - - - Creates a skew matrix from the specified angles in radians. - The X angle, in radians. - The Y angle, in radians. - The skew matrix. - - - Creates a skew matrix from the specified angles in radians and a center point. - The X angle, in radians. - The Y angle, in radians. - The center point. - The skew matrix. - - - Creates a translation matrix from the specified 2-dimensional vector. - The translation position. - The translation matrix. - - - Creates a translation matrix from the specified X and Y components. - The X position. - The Y position. - The translation matrix. - - - Returns a value that indicates whether this instance and another 3x2 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant for this matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - The multiplicative identify matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Represents a 4x4 matrix. - - - Creates a object from a specified object. - A 3x2 matrix. - - - Creates a 4x4 matrix from the specified components. - The value to assign to the first element in the first row. - The value to assign to the second element in the first row. - The value to assign to the third element in the first row. - The value to assign to the fourth element in the first row. - The value to assign to the first element in the second row. - The value to assign to the second element in the second row. - The value to assign to the third element in the second row. - The value to assign to the third element in the second row. - The value to assign to the first element in the third row. - The value to assign to the second element in the third row. - The value to assign to the third element in the third row. - The value to assign to the fourth element in the third row. - The value to assign to the first element in the fourth row. - The value to assign to the second element in the fourth row. - The value to assign to the third element in the fourth row. - The value to assign to the fourth element in the fourth row. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values of value1 and value2. - - - Creates a spherical billboard that rotates around a specified object position. - The position of the object that the billboard will rotate around. - The position of the camera. - The up vector of the camera. - The forward vector of the camera. - The created billboard. - - - Creates a cylindrical billboard that rotates around a specified axis. - The position of the object that the billboard will rotate around. - The position of the camera. - The axis to rotate the billboard around. - The forward vector of the camera. - The forward vector of the object. - The billboard matrix. - - - Creates a matrix that rotates around an arbitrary vector. - The axis to rotate around. - The angle to rotate around axis, in radians. - The rotation matrix. - - - Creates a rotation matrix from the specified Quaternion rotation value. - The source Quaternion. - The rotation matrix. - - - Creates a rotation matrix from the specified yaw, pitch, and roll. - The angle of rotation, in radians, around the Y axis. - The angle of rotation, in radians, around the X axis. - The angle of rotation, in radians, around the Z axis. - The rotation matrix. - - - Creates a view matrix. - The position of the camera. - The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. - The view matrix. - - - Creates an orthographic perspective matrix from the given view volume dimensions. - The width of the view volume. - The height of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a customized orthographic projection matrix. - The minimum X-value of the view volume. - The maximum X-value of the view volume. - The minimum Y-value of the view volume. - The maximum Y-value of the view volume. - The minimum Z-value of the view volume. - The maximum Z-value of the view volume. - The orthographic projection matrix. - - - Creates a perspective projection matrix from the given view volume dimensions. - The width of the view volume at the near view plane. - The height of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. - The field of view in the y direction, in radians. - The aspect ratio, defined as view space width divided by height. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a customized perspective projection matrix. - The minimum x-value of the view volume at the near view plane. - The maximum x-value of the view volume at the near view plane. - The minimum y-value of the view volume at the near view plane. - The maximum y-value of the view volume at the near view plane. - The distance to the near view plane. - The distance to the far view plane. - The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. - - - Creates a matrix that reflects the coordinate system about a specified plane. - The plane about which to create a reflection. - A new matrix expressing the reflection. - - - Creates a matrix for rotating points around the X axis. - The amount, in radians, by which to rotate around the X axis. - The rotation matrix. - - - Creates a matrix for rotating points around the X axis from a center point. - The amount, in radians, by which to rotate around the X axis. - The center point. - The rotation matrix. - - - The amount, in radians, by which to rotate around the Y axis from a center point. - The amount, in radians, by which to rotate around the Y-axis. - The center point. - The rotation matrix. - - - Creates a matrix for rotating points around the Y axis. - The amount, in radians, by which to rotate around the Y-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis. - The amount, in radians, by which to rotate around the Z-axis. - The rotation matrix. - - - Creates a matrix for rotating points around the Z axis from a center point. - The amount, in radians, by which to rotate around the Z-axis. - The center point. - The rotation matrix. - - - Creates a scaling matrix from the specified vector scale. - The scale to use. - The scaling matrix. - - - Creates a uniform scaling matrix that scale equally on each axis. - The uniform scaling factor. - The scaling matrix. - - - Creates a scaling matrix with a center point. - The vector that contains the amount to scale on each axis. - The center point. - The scaling matrix. - - - Creates a uniform scaling matrix that scales equally on each axis with a center point. - The uniform scaling factor. - The center point. - The scaling matrix. - - - Creates a scaling matrix from the specified X, Y, and Z components. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The scaling matrix. - - - Creates a scaling matrix that is offset by a given center point. - The value to scale by on the X axis. - The value to scale by on the Y axis. - The value to scale by on the Z axis. - The center point. - The scaling matrix. - - - Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. - The direction from which the light that will cast the shadow is coming. - The plane onto which the new matrix should flatten geometry so as to cast a shadow. - A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. - - - Creates a translation matrix from the specified 3-dimensional vector. - The amount to translate in each axis. - The translation matrix. - - - Creates a translation matrix from the specified X, Y, and Z components. - The amount to translate on the X axis. - The amount to translate on the Y axis. - The amount to translate on the Z axis. - The translation matrix. - - - Creates a world matrix with the specified parameters. - The position of the object. - The forward direction of the object. - The upward direction of the object. Its value is usually [0, 1, 0]. - The world matrix. - - - Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. - The source matrix. - When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. - When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. - When the method returns, contains the translation component of the transformation matrix if the operation succeeded. - true if matrix was decomposed successfully; otherwise, false. - - - Returns a value that indicates whether this instance and another 4x4 matrix are equal. - The other matrix. - true if the two matrices are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Calculates the determinant of the current 4x4 matrix. - The determinant. - - - Returns the hash code for this instance. - The hash code. - - - Gets the multiplicative identity matrix. - Gets the multiplicative identity matrix. - - - Inverts the specified matrix. The return value indicates whether the operation succeeded. - The matrix to invert. - When this method returns, contains the inverted matrix if the operation succeeded. - true if matrix was converted successfully; otherwise, false. - - - Indicates whether the current matrix is the identity matrix. - true if the current matrix is the identity matrix; otherwise, false. - - - Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. - The first matrix. - The second matrix. - The relative weighting of matrix2. - The interpolated matrix. - - - The first element of the first row. - - - - The second element of the first row. - - - - The third element of the first row. - - - - The fourth element of the first row. - - - - The first element of the second row. - - - - The second element of the second row. - - - - The third element of the second row. - - - - The fourth element of the second row. - - - - The first element of the third row. - - - - The second element of the third row. - - - - The third element of the third row. - - - - The fourth element of the third row. - - - - The first element of the fourth row. - - - - The second element of the fourth row. - - - - The third element of the fourth row. - - - - The fourth element of the fourth row. - - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Adds each element in one matrix with its corresponding element in a second matrix. - The first matrix. - The second matrix. - The matrix that contains the summed values. - - - Returns a value that indicates whether the specified matrices are equal. - The first matrix to compare. - The second matrix to care - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether the specified matrices are not equal. - The first matrix to compare. - The second matrix to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. - The matrix to scale. - The scaling value to use. - The scaled matrix. - - - Returns the matrix that results from multiplying two matrices together. - The first matrix. - The second matrix. - The product matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Negates the specified matrix by multiplying all its values by -1. - The matrix to negate. - The negated matrix. - - - Subtracts each element in a second matrix from its corresponding element in a first matrix. - The first matrix. - The second matrix. - The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this matrix. - The string representation of this matrix. - - - Transforms the specified matrix by applying the specified Quaternion rotation. - The matrix to transform. - The rotation t apply. - The transformed matrix. - - - Gets or sets the translation component of this matrix. - The translation component of the current instance. - - - Transposes the rows and columns of a matrix. - The matrix to transpose. - The transposed matrix. - - - Represents a three-dimensional plane. - - - Creates a object from a specified four-dimensional vector. - A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. - - - Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. - - - Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. - The X component of the normal. - The Y component of the normal. - The Z component of the normal. - The distance of the plane along its normal from the origin. - - - Creates a object that contains three specified points. - The first point defining the plane. - The second point defining the plane. - The third point defining the plane. - The plane containing the three points. - - - The distance of the plane along its normal from the origin. - - - - Calculates the dot product of a plane and a 4-dimensional vector. - The plane. - The four-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. - The plane. - The 3-dimensional vector. - The dot product. - - - Returns the dot product of a specified three-dimensional vector and the vector of this plane. - The plane. - The three-dimensional vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another plane object are equal. - The other plane. - true if the two planes are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - The normal vector of the plane. - - - - Creates a new object whose normal vector is the source plane's normal vector normalized. - The source plane. - The normalized plane. - - - Returns a value that indicates whether two planes are equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are equal; otherwise, false. - - - Returns a value that indicates whether two planes are not equal. - The first plane to compare. - The second plane to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the string representation of this plane object. - A string that represents this object. - - - Transforms a normalized plane by a 4x4 matrix. - The normalized plane to transform. - The transformation matrix to apply to plane. - The transformed plane. - - - Transforms a normalized plane by a Quaternion rotation. - The normalized plane to transform. - The Quaternion rotation to apply to the plane. - A new plane that results from applying the Quaternion rotation. - - - Represents a vector that is used to encode three-dimensional physical rotations. - - - Creates a quaternion from the specified vector and rotation parts. - The vector part of the quaternion. - The rotation part of the quaternion. - - - Constructs a quaternion from the specified components. - The value to assign to the X component of the quaternion. - The value to assign to the Y component of the quaternion. - The value to assign to the Z component of the quaternion. - The value to assign to the W component of the quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Concatenates two quaternions. - The first quaternion rotation in the series. - The second quaternion rotation in the series. - A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. - - - Returns the conjugate of a specified quaternion. - The quaternion. - A new quaternion that is the conjugate of value. - - - Creates a quaternion from a vector and an angle to rotate about the vector. - The vector to rotate around. - The angle, in radians, to rotate around the vector. - The newly created quaternion. - - - Creates a quaternion from the specified rotation matrix. - The rotation matrix. - The newly created quaternion. - - - Creates a new quaternion from the given yaw, pitch, and roll. - The yaw angle, in radians, around the Y axis. - The pitch angle, in radians, around the X axis. - The roll angle, in radians, around the Z axis. - The resulting quaternion. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Calculates the dot product of two quaternions. - The first quaternion. - The second quaternion. - The dot product. - - - Returns a value that indicates whether this instance and another quaternion are equal. - The other quaternion. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Gets a quaternion that represents no rotation. - A quaternion whose values are (0, 0, 0, 1). - - - Returns the inverse of a quaternion. - The quaternion. - The inverted quaternion. - - - Gets a value that indicates whether the current instance is the identity quaternion. - true if the current instance is the identity quaternion; otherwise, false. - - - Calculates the length of the quaternion. - The computed length of the quaternion. - - - Calculates the squared length of the quaternion. - The length squared of the quaternion. - - - Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. - The first quaternion. - The second quaternion. - The relative weight of quaternion2 in the interpolation. - The interpolated quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Divides each component of a specified by its length. - The quaternion to normalize. - The normalized quaternion. - - - Adds each element in one quaternion with its corresponding element in a second quaternion. - The first quaternion. - The second quaternion. - The quaternion that contains the summed values of value1 and value2. - - - Divides one quaternion by a second quaternion. - The dividend. - The divisor. - The quaternion that results from dividing value1 by value2. - - - Returns a value that indicates whether two quaternions are equal. - The first quaternion to compare. - The second quaternion to compare. - true if the two quaternions are equal; otherwise, false. - - - Returns a value that indicates whether two quaternions are not equal. - The first quaternion to compare. - The second quaternion to compare. - true if value1 and value2 are not equal; otherwise, false. - - - Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. - The source quaternion. - The scalar value. - The scaled quaternion. - - - Returns the quaternion that results from multiplying two quaternions together. - The first quaternion. - The second quaternion. - The product quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Reverses the sign of each component of the quaternion. - The quaternion to negate. - The negated quaternion. - - - Interpolates between two quaternions, using spherical linear interpolation. - The first quaternion. - The second quaternion. - The relative weight of the second quaternion in the interpolation. - The interpolated quaternion. - - - Subtracts each element in a second quaternion from its corresponding element in a first quaternion. - The first quaternion. - The second quaternion. - The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. - - - Returns a string that represents this quaternion. - The string representation of this quaternion. - - - The rotation component of the quaternion. - - - - The X value of the vector component of the quaternion. - - - - The Y value of the vector component of the quaternion. - - - - The Z value of the vector component of the quaternion. - - - - Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. - The vector type. T can be any primitive numeric type. - - - Creates a vector whose components are of a specified type. - The numeric type that defines the type of the components in the vector. - - - Creates a vector from a specified array. - A numeric array. - values is null. - - - Creates a vector from a specified array starting at a specified index position. - A numeric array. - The starting index position from which to create the vector. - values is null. - index is less than zero. -or- The length of values minus index is less than . - - - Copies the vector instance to a specified destination array. - The array to receive a copy of the vector values. - destination is null. - The number of elements in the current vector is greater than the number of elements available in the destination array. - - - Copies the vector instance to a specified destination array starting at a specified index position. - The array to receive a copy of the vector values. - The starting index in destination at which to begin the copy operation. - destination is null. - The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. - index is less than zero or greater than the last index in destination. - - - Returns the number of elements stored in the vector. - The number of elements stored in the vector. - Access to the property getter via reflection is not supported. - - - Returns a value that indicates whether this instance is equal to a specified vector. - The vector to compare with this instance. - true if the current instance and other are equal; otherwise, false. - - - Returns a value that indicates whether this instance is equal to a specified object. - The object to compare with this instance. - true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. - - - Returns the hash code for this instance. - The hash code. - - - Gets the element at a specified index. - The index of the element to return. - The element at index index. - index is less than zero. -or- index is greater than or equal to . - - - Returns a vector containing all ones. - A vector containing all ones. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise And of left and right. - - - Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise Or of the elements in left and right. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Returns a value that indicates whether each pair of elements in two specified vectors are equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. - The first vector. - The second vector. - The vector that results from the bitwise XOr of the elements in left and right. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Reinterprets the bits of the specified vector into a vector of type . - The vector to reinterpret. - The reinterpreted vector. - - - Returns a value that indicates whether any single pair of elements in the specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if any element pairs in left and right are equal. false if no element pairs are equal. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar value. - The source vector. - A scalar value. - The scaled vector. - - - Multiplies a vector by the given scalar. - The scalar value. - The source vector. - The scaled vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The one's complement vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates a given vector. - The vector to negate. - The negated vector. - - - Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Returns the string representation of this vector using default formatting. - The string representation of this vector. - - - Returns the string representation of this vector using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns a vector containing all zeroes. - A vector containing all zeroes. - - - Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - - - Returns a new vector whose elements are the absolute values of the given vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The absolute value vector. - - - Returns a new vector whose values are the sum of each pair of elements from two given vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The summed vector. - - - Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of signed bytes. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. - The source vector. - The vector type. T can be any primitive numeric type. - The reinterpreted vector. - - - Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The new vector with elements selected based on the mask. - - - Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. - The integral mask vector used to drive selection. - The first source vector. - The second source vector. - The vector type. T can be any primitive numeric type. - The new vector with elements selected based on the mask. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The divided vector. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The dot product. - - - Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether each pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left and right are equal; otherwise, false. - - - Returns a value that indicates whether any single pair of elements in the given vectors is equal. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element pair in left and right is equal; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. - - - Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. - true if vector operations are subject to hardware acceleration; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than the corresponding element in right; otherwise, false. - - - Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. - The first vector to compare. - The second vector to compare. - The resulting long integer vector. - - - Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. - The first vector to compare. - The second vector to compare. - The resulting integral vector. - - - Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. - - - Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - true if any element in left is less than or equal to the corresponding element in right; otherwise, false. - - - Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The maximum vector. - - - Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. - The first vector to compare. - The second vector to compare. - The vector type. T can be any primitive numeric type. - The minimum vector. - - - Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. - The scalar value. - The vector. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - Returns a new vector whose values are the product of each pair of elements in two specified vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The product vector. - - - Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. - The vector. - The scalar value. - The vector type. T can be any primitive numeric type. - The scaled vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector whose elements are the negation of the corresponding element in the specified vector. - The source vector. - The vector type. T can be any primitive numeric type. - The negated vector. - - - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Returns a new vector whose elements are the square roots of a specified vector's elements. - The source vector. - The vector type. T can be any primitive numeric type. - The square root vector. - - - Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The difference vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. - The first vector. - The second vector. - The vector type. T can be any primitive numeric type. - The resulting vector. - - - Represents a vector with two single-precision floating-point values. - - - Creates a new object whose two elements have the same value. - The value to assign to both elements. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of the vector. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 2 elements are equal to one. - A vector whose two elements are equal to one (that is, it returns the vector (1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 3x2 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 3x2 matrix. - The source vector. - The matrix. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0). - The vector (1,0). - - - Gets the vector (0,1). - The vector (0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - Returns a vector whose 2 elements are equal to zero. - A vector whose two elements are equal to zero (that is, it returns the vector (0,0). - - - Represents a vector with three single-precision floating-point values. - - - Creates a new object whose three elements have the same value. - The value to assign to all three elements. - - - Creates a new object from the specified object and the specified value. - The vector with two elements. - The additional value to assign to the field. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the cross product of two vectors. - The first vector. - The second vector. - The cross product. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 3 elements are equal to one. - A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns the reflection of a vector off a surface that has the specified normal. - The source vector. - The normal of the surface being reflected off. - The reflected vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a vector normal by the given 4x4 matrix. - The source vector. - The matrix. - The transformed vector. - - - Gets the vector (1,0,0). - The vector (1,0,0). - - - Gets the vector (0,1,0). - The vector (0,1,0).. - - - Gets the vector (0,0,1). - The vector (0,0,1). - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 3 elements are equal to zero. - A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). - - - Represents a vector with four single-precision floating-point values. - - - Creates a new object whose four elements have the same value. - The value to assign to all four elements. - - - Constructs a new object from the specified object and a W component. - The vector to use for the X, Y, and Z components. - The W component. - - - Creates a new object from the specified object and a Z and a W component. - The vector to use for the X and Y components. - The Z component. - The W component. - - - Creates a vector whose elements have the specified values. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - The value to assign to the field. - - - Returns a vector whose elements are the absolute values of each of the specified vector's elements. - A vector. - The absolute value vector. - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Restricts a vector between a minimum and a maximum value. - The vector to restrict. - The minimum value. - The maximum value. - The restricted vector. - - - Copies the elements of the vector to a specified array. - The destination array. - array is null. - The number of elements in the current instance is greater than in the array. - array is multidimensional. - - - Copies the elements of the vector to a specified array starting at a specified index position. - The destination array. - The index at which to copy the first element of the vector. - array is null. - The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. - array is multidimensional. - - - Computes the Euclidean distance between the two given points. - The first point. - The second point. - The distance. - - - Returns the Euclidean distance squared between two specified points. - The first point. - The second point. - The distance squared. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector resulting from the division. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The vector that results from the division. - - - Returns the dot product of two vectors. - The first vector. - The second vector. - The dot product. - - - Returns a value that indicates whether this instance and another vector are equal. - The other vector. - true if the two vectors are equal; otherwise, false. - - - Returns a value that indicates whether this instance and a specified object are equal. - The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. - - - Returns the hash code for this instance. - The hash code. - - - Returns the length of this vector object. - The vector's length. - - - Returns the length of the vector squared. - The vector's length squared. - - - Performs a linear interpolation between two vectors based on the given weighting. - The first vector. - The second vector. - A value between 0 and 1 that indicates the weight of value2. - The interpolated vector. - - - Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The maximized vector. - - - Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. - The first vector. - The second vector. - The minimized vector. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiplies a vector by a specified scalar. - The vector to multiply. - The scalar value. - The scaled vector. - - - Multiplies a scalar value by a specified vector. - The scaled value. - The vector. - The scaled vector. - - - Negates a specified vector. - The vector to negate. - The negated vector. - - - Returns a vector with the same direction as the specified vector, but with a length of one. - The vector to normalize. - The normalized vector. - - - Gets a vector whose 4 elements are equal to one. - Returns . - - - Adds two vectors together. - The first vector to add. - The second vector to add. - The summed vector. - - - Divides the first vector by the second. - The first vector. - The second vector. - The vector that results from dividing left by right. - - - Divides the specified vector by a specified scalar value. - The vector. - The scalar value. - The result of the division. - - - Returns a value that indicates whether each pair of elements in two specified vectors is equal. - The first vector to compare. - The second vector to compare. - true if left and right are equal; otherwise, false. - - - Returns a value that indicates whether two specified vectors are not equal. - The first vector to compare. - The second vector to compare. - true if left and right are not equal; otherwise, false. - - - Multiplies two vectors together. - The first vector. - The second vector. - The product vector. - - - Multiples the specified vector by the specified scalar value. - The vector. - The scalar value. - The scaled vector. - - - Multiples the scalar value by the specified vector. - The vector. - The scalar value. - The scaled vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The vector that results from subtracting right from left. - - - Negates the specified vector. - The vector to negate. - The negated vector. - - - Returns a vector whose elements are the square root of each of a specified vector's elements. - A vector. - The square root vector. - - - Subtracts the second vector from the first. - The first vector. - The second vector. - The difference vector. - - - Returns the string representation of the current instance using default formatting. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements. - A or that defines the format of individual elements. - The string representation of the current instance. - - - Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. - A or that defines the format of individual elements. - A format provider that supplies culture-specific formatting information. - The string representation of the current instance. - - - Transforms a four-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a four-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a three-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a two-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Transforms a two-dimensional vector by the specified Quaternion rotation value. - The vector to rotate. - The rotation to apply. - The transformed vector. - - - Transforms a three-dimensional vector by a specified 4x4 matrix. - The vector to transform. - The transformation matrix. - The transformed vector. - - - Gets the vector (0,0,0,1). - The vector (0,0,0,1). - - - Gets the vector (1,0,0,0). - The vector (1,0,0,0). - - - Gets the vector (0,1,0,0). - The vector (0,1,0,0).. - - - Gets a vector whose 4 elements are equal to zero. - The vector (0,0,1,0). - - - The W component of the vector. - - - - The X component of the vector. - - - - The Y component of the vector. - - - - The Z component of the vector. - - - - Gets a vector whose 4 elements are equal to zero. - A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - - - \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/version.txt b/packages/System.Numerics.Vectors.4.4.0/version.txt deleted file mode 100644 index 1ca86a08ed..0000000000 --- a/packages/System.Numerics.Vectors.4.4.0/version.txt +++ /dev/null @@ -1 +0,0 @@ -8321c729934c0f8be754953439b88e6e1c120c24 diff --git a/packages/System.Numerics.Vectors.4.5.0/.signature.p7s b/packages/System.Numerics.Vectors.4.5.0/.signature.p7s new file mode 100644 index 0000000000..c94bceb6c4 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/.signature.p7s differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/LICENSE.TXT b/packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/LICENSE.TXT rename to packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT diff --git a/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg b/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg new file mode 100644 index 0000000000..622fa1a4bf Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/THIRD-PARTY-NOTICES.TXT b/packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/THIRD-PARTY-NOTICES.TXT rename to packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/MonoAndroid10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/MonoAndroid10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/MonoTouch10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/MonoTouch10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._ diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..08659724d4 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml similarity index 96% rename from packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.xml rename to packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml index 51297939a8..da34d390c5 100644 --- a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard1.0/System.Numerics.Vectors.xml +++ b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml @@ -1,5 +1,4 @@ - - + System.Numerics.Vectors @@ -100,7 +99,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant for this matrix. @@ -298,7 +297,7 @@ Creates a view matrix. The position of the camera. The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. + The direction that is &quot;up&quot; from the camera&#39;s point of view. The view matrix. @@ -326,7 +325,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. @@ -335,7 +338,14 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a customized perspective projection matrix. @@ -346,7 +356,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a matrix that reflects the coordinate system about a specified plane. @@ -464,7 +478,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant of the current 4x4 matrix. @@ -651,8 +665,8 @@ Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. @@ -693,7 +707,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another plane object are equal. @@ -709,7 +723,7 @@ - Creates a new object whose normal vector is the source plane's normal vector normalized. + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. The source plane. The normalized plane. @@ -727,7 +741,7 @@ Returns the string representation of this plane object. - A string that represents this object. + A string that represents this object. Transforms a normalized plane by a 4x4 matrix. @@ -811,7 +825,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -965,7 +979,9 @@ A numeric array. The starting index position from which to create the vector. values is null. - index is less than zero. -or- The length of values minus index is less than . + index is less than zero. + -or- + The length of values minus index is less than . Copies the vector instance to a specified destination array. @@ -1004,7 +1020,9 @@ Gets the element at a specified index. The index of the element to return. The element at index index. - index is less than zero. -or- index is greater than or equal to . + index is less than zero. + -or- + index is greater than or equal to . Returns a vector containing all ones. @@ -1046,52 +1064,52 @@ The second vector. The vector that results from the bitwise XOr of the elements in left and right. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. @@ -1121,9 +1139,9 @@ The scaled vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. - The one's complement vector. + The one&#39;s complement vector. Subtracts the second vector from the first. @@ -1159,7 +1177,7 @@ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - Returns a new vector whose elements are the absolute values of the given vector's elements. + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The absolute value vector. @@ -1307,7 +1325,7 @@ - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. The first vector. The second vector. The vector type. T can be any primitive numeric type. @@ -1626,13 +1644,13 @@ The negated vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The resulting vector. - Returns a new vector whose elements are the square roots of a specified vector's elements. + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The square root vector. @@ -1699,7 +1717,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -1729,7 +1747,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -1765,7 +1785,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another vector are equal. @@ -1778,11 +1798,11 @@ Returns the length of the vector. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -1901,7 +1921,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -1995,7 +2015,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2025,7 +2045,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2072,7 +2094,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2080,11 +2102,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2203,7 +2225,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2300,7 +2322,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2330,7 +2352,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2371,7 +2395,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2379,11 +2403,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2434,7 +2458,7 @@ Gets a vector whose 4 elements are equal to one. - Returns . + Returns . Adds two vectors together. @@ -2496,7 +2520,7 @@ The negated vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2594,4 +2618,4 @@ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - \ No newline at end of file + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/netcoreapp2.0/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._ diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..433aa36194 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml similarity index 96% rename from packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.xml rename to packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml index 51297939a8..da34d390c5 100644 --- a/packages/System.Numerics.Vectors.4.4.0/lib/netstandard2.0/System.Numerics.Vectors.xml +++ b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml @@ -1,5 +1,4 @@ - - + System.Numerics.Vectors @@ -100,7 +99,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant for this matrix. @@ -298,7 +297,7 @@ Creates a view matrix. The position of the camera. The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. + The direction that is &quot;up&quot; from the camera&#39;s point of view. The view matrix. @@ -326,7 +325,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. @@ -335,7 +338,14 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a customized perspective projection matrix. @@ -346,7 +356,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a matrix that reflects the coordinate system about a specified plane. @@ -464,7 +478,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant of the current 4x4 matrix. @@ -651,8 +665,8 @@ Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. @@ -693,7 +707,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another plane object are equal. @@ -709,7 +723,7 @@ - Creates a new object whose normal vector is the source plane's normal vector normalized. + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. The source plane. The normalized plane. @@ -727,7 +741,7 @@ Returns the string representation of this plane object. - A string that represents this object. + A string that represents this object. Transforms a normalized plane by a 4x4 matrix. @@ -811,7 +825,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -965,7 +979,9 @@ A numeric array. The starting index position from which to create the vector. values is null. - index is less than zero. -or- The length of values minus index is less than . + index is less than zero. + -or- + The length of values minus index is less than . Copies the vector instance to a specified destination array. @@ -1004,7 +1020,9 @@ Gets the element at a specified index. The index of the element to return. The element at index index. - index is less than zero. -or- index is greater than or equal to . + index is less than zero. + -or- + index is greater than or equal to . Returns a vector containing all ones. @@ -1046,52 +1064,52 @@ The second vector. The vector that results from the bitwise XOr of the elements in left and right. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. @@ -1121,9 +1139,9 @@ The scaled vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. - The one's complement vector. + The one&#39;s complement vector. Subtracts the second vector from the first. @@ -1159,7 +1177,7 @@ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - Returns a new vector whose elements are the absolute values of the given vector's elements. + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The absolute value vector. @@ -1307,7 +1325,7 @@ - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. The first vector. The second vector. The vector type. T can be any primitive numeric type. @@ -1626,13 +1644,13 @@ The negated vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The resulting vector. - Returns a new vector whose elements are the square roots of a specified vector's elements. + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The square root vector. @@ -1699,7 +1717,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -1729,7 +1747,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -1765,7 +1785,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another vector are equal. @@ -1778,11 +1798,11 @@ Returns the length of the vector. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -1901,7 +1921,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -1995,7 +2015,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2025,7 +2045,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2072,7 +2094,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2080,11 +2102,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2203,7 +2225,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2300,7 +2322,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2330,7 +2352,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2371,7 +2395,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2379,11 +2403,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2434,7 +2458,7 @@ Gets a vector whose 4 elements are equal to one. - Returns . + Returns . Adds two vectors together. @@ -2496,7 +2520,7 @@ The negated vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2594,4 +2618,4 @@ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - \ No newline at end of file + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..10205772c3 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml similarity index 96% rename from packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml rename to packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml index 51297939a8..da34d390c5 100644 --- a/packages/System.Numerics.Vectors.4.4.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml +++ b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml @@ -1,5 +1,4 @@ - - + System.Numerics.Vectors @@ -100,7 +99,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant for this matrix. @@ -298,7 +297,7 @@ Creates a view matrix. The position of the camera. The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. + The direction that is &quot;up&quot; from the camera&#39;s point of view. The view matrix. @@ -326,7 +325,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. @@ -335,7 +338,14 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a customized perspective projection matrix. @@ -346,7 +356,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a matrix that reflects the coordinate system about a specified plane. @@ -464,7 +478,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant of the current 4x4 matrix. @@ -651,8 +665,8 @@ Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. @@ -693,7 +707,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another plane object are equal. @@ -709,7 +723,7 @@ - Creates a new object whose normal vector is the source plane's normal vector normalized. + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. The source plane. The normalized plane. @@ -727,7 +741,7 @@ Returns the string representation of this plane object. - A string that represents this object. + A string that represents this object. Transforms a normalized plane by a 4x4 matrix. @@ -811,7 +825,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -965,7 +979,9 @@ A numeric array. The starting index position from which to create the vector. values is null. - index is less than zero. -or- The length of values minus index is less than . + index is less than zero. + -or- + The length of values minus index is less than . Copies the vector instance to a specified destination array. @@ -1004,7 +1020,9 @@ Gets the element at a specified index. The index of the element to return. The element at index index. - index is less than zero. -or- index is greater than or equal to . + index is less than zero. + -or- + index is greater than or equal to . Returns a vector containing all ones. @@ -1046,52 +1064,52 @@ The second vector. The vector that results from the bitwise XOr of the elements in left and right. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. @@ -1121,9 +1139,9 @@ The scaled vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. - The one's complement vector. + The one&#39;s complement vector. Subtracts the second vector from the first. @@ -1159,7 +1177,7 @@ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - Returns a new vector whose elements are the absolute values of the given vector's elements. + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The absolute value vector. @@ -1307,7 +1325,7 @@ - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. The first vector. The second vector. The vector type. T can be any primitive numeric type. @@ -1626,13 +1644,13 @@ The negated vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The resulting vector. - Returns a new vector whose elements are the square roots of a specified vector's elements. + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The square root vector. @@ -1699,7 +1717,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -1729,7 +1747,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -1765,7 +1785,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another vector are equal. @@ -1778,11 +1798,11 @@ Returns the length of the vector. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -1901,7 +1921,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -1995,7 +2015,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2025,7 +2045,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2072,7 +2094,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2080,11 +2102,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2203,7 +2225,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2300,7 +2322,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2330,7 +2352,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2371,7 +2395,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2379,11 +2403,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2434,7 +2458,7 @@ Gets a vector whose 4 elements are equal to one. - Returns . + Returns . Adds two vectors together. @@ -2496,7 +2520,7 @@ The negated vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2594,4 +2618,4 @@ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - \ No newline at end of file + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..433aa36194 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml similarity index 96% rename from packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.xml rename to packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml index 51297939a8..da34d390c5 100644 --- a/packages/System.Numerics.Vectors.4.4.0/lib/net46/System.Numerics.Vectors.xml +++ b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml @@ -1,5 +1,4 @@ - - + System.Numerics.Vectors @@ -100,7 +99,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant for this matrix. @@ -298,7 +297,7 @@ Creates a view matrix. The position of the camera. The target towards which the camera is pointing. - The direction that is "up" from the camera's point of view. + The direction that is &quot;up&quot; from the camera&#39;s point of view. The view matrix. @@ -326,7 +325,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. @@ -335,7 +338,14 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a customized perspective projection matrix. @@ -346,7 +356,11 @@ The distance to the near view plane. The distance to the far view plane. The perspective projection matrix. - nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. Creates a matrix that reflects the coordinate system about a specified plane. @@ -464,7 +478,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Calculates the determinant of the current 4x4 matrix. @@ -651,8 +665,8 @@ Creates a object from a specified normal and the distance along the normal from the origin. - The plane's normal vector. - The plane's distance from the origin along its normal vector. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. @@ -693,7 +707,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another plane object are equal. @@ -709,7 +723,7 @@ - Creates a new object whose normal vector is the source plane's normal vector normalized. + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. The source plane. The normalized plane. @@ -727,7 +741,7 @@ Returns the string representation of this plane object. - A string that represents this object. + A string that represents this object. Transforms a normalized plane by a 4x4 matrix. @@ -811,7 +825,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -965,7 +979,9 @@ A numeric array. The starting index position from which to create the vector. values is null. - index is less than zero. -or- The length of values minus index is less than . + index is less than zero. + -or- + The length of values minus index is less than . Copies the vector instance to a specified destination array. @@ -1004,7 +1020,9 @@ Gets the element at a specified index. The index of the element to return. The element at index index. - index is less than zero. -or- index is greater than or equal to . + index is less than zero. + -or- + index is greater than or equal to . Returns a vector containing all ones. @@ -1046,52 +1064,52 @@ The second vector. The vector that results from the bitwise XOr of the elements in left and right. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. - + Reinterprets the bits of the specified vector into a vector of type . The vector to reinterpret. The reinterpreted vector. @@ -1121,9 +1139,9 @@ The scaled vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. - The one's complement vector. + The one&#39;s complement vector. Subtracts the second vector from the first. @@ -1159,7 +1177,7 @@ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. - Returns a new vector whose elements are the absolute values of the given vector's elements. + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The absolute value vector. @@ -1307,7 +1325,7 @@ - Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. The first vector. The second vector. The vector type. T can be any primitive numeric type. @@ -1626,13 +1644,13 @@ The negated vector. - Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The resulting vector. - Returns a new vector whose elements are the square roots of a specified vector's elements. + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. The source vector. The vector type. T can be any primitive numeric type. The square root vector. @@ -1699,7 +1717,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -1729,7 +1747,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -1765,7 +1785,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns a value that indicates whether this instance and another vector are equal. @@ -1778,11 +1798,11 @@ Returns the length of the vector. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -1901,7 +1921,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -1995,7 +2015,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2025,7 +2045,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2072,7 +2094,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2080,11 +2102,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2203,7 +2225,7 @@ The reflected vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2300,7 +2322,7 @@ The value to assign to the field. - Returns a vector whose elements are the absolute values of each of the specified vector's elements. + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. A vector. The absolute value vector. @@ -2330,7 +2352,9 @@ The index at which to copy the first element of the vector. array is null. The number of elements in the current instance is greater than in the array. - index is less than zero. -or- index is greater than or equal to the array length. + index is less than zero. + -or- + index is greater than or equal to the array length. array is multidimensional. @@ -2371,7 +2395,7 @@ Returns a value that indicates whether this instance and a specified object are equal. The object to compare with the current instance. - true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. Returns the hash code for this instance. @@ -2379,11 +2403,11 @@ Returns the length of this vector object. - The vector's length. + The vector&#39;s length. Returns the length of the vector squared. - The vector's length squared. + The vector&#39;s length squared. Performs a linear interpolation between two vectors based on the given weighting. @@ -2434,7 +2458,7 @@ Gets a vector whose 4 elements are equal to one. - Returns . + Returns . Adds two vectors together. @@ -2496,7 +2520,7 @@ The negated vector. - Returns a vector whose elements are the square root of each of a specified vector's elements. + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. A vector. The square root vector. @@ -2594,4 +2618,4 @@ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). - \ No newline at end of file + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/xamarinios10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/xamarinios10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/xamarinmac20/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/xamarinmac20/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/xamarintvos10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/xamarintvos10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/lib/xamarinwatchos10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/lib/xamarinwatchos10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/MonoAndroid10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/MonoAndroid10/_._ rename to packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/MonoTouch10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/MonoTouch10/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/netcoreapp2.0/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._ diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..e237afb2fc Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml new file mode 100644 index 0000000000..da34d390c5 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml @@ -0,0 +1,2621 @@ + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is &quot;up&quot; from the camera&#39;s point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. + -or- + The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. + -or- + index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The one&#39;s complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll new file mode 100644 index 0000000000..470f2f3914 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml new file mode 100644 index 0000000000..da34d390c5 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml @@ -0,0 +1,2621 @@ + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is &quot;up&quot; from the camera&#39;s point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. + -or- + The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. + -or- + index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The one&#39;s complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/xamarinios10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/xamarinios10/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard1.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/netstandard1.0/System.Numerics.Vectors.dll rename to packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml new file mode 100644 index 0000000000..da34d390c5 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml @@ -0,0 +1,2621 @@ + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is &quot;up&quot; from the camera&#39;s point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. + -or- + The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. + -or- + index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The one&#39;s complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/netstandard2.0/System.Numerics.Vectors.dll rename to packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml new file mode 100644 index 0000000000..da34d390c5 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml @@ -0,0 +1,2621 @@ + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is &quot;up&quot; from the camera&#39;s point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. + -or- + The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. + -or- + index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The one&#39;s complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/xamarinmac20/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/xamarinmac20/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/xamarintvos10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/xamarintvos10/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._ diff --git a/packages/System.Numerics.Vectors.4.4.0/ref/xamarinwatchos10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._ similarity index 100% rename from packages/System.Numerics.Vectors.4.4.0/ref/xamarinwatchos10/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/uap10.0.16300/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._ similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/uap10.0.16300/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/uap10.0.16300/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._ similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/uap10.0.16300/_._ rename to packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/useSharedDesignerContext.txt b/packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/useSharedDesignerContext.txt rename to packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt diff --git a/packages/System.Numerics.Vectors.4.5.0/version.txt b/packages/System.Numerics.Vectors.4.5.0/version.txt new file mode 100644 index 0000000000..47004a02b3 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.5.0/version.txt @@ -0,0 +1 @@ +30ab651fcb4354552bd4891619a0bdd81e0ebdbf diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1.nupkg b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1.nupkg deleted file mode 100644 index 5a2fb55f0e..0000000000 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1.nupkg and /dev/null differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/version.txt b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/version.txt deleted file mode 100644 index dafbf634ec..0000000000 --- a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/version.txt +++ /dev/null @@ -1 +0,0 @@ -8f968b9e79c5721d78cc88e46fe57457fe9d490d diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/.signature.p7s b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/.signature.p7s similarity index 73% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/.signature.p7s rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/.signature.p7s index b6134074b5..43d3c83875 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/.signature.p7s and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/.signature.p7s differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/LICENSE.TXT b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/LICENSE.TXT similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/LICENSE.TXT rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/LICENSE.TXT diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/System.Runtime.CompilerServices.Unsafe.4.5.0.nupkg b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/System.Runtime.CompilerServices.Unsafe.4.5.0.nupkg new file mode 100644 index 0000000000..6d19129c01 Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/System.Runtime.CompilerServices.Unsafe.4.5.0.nupkg differ diff --git a/packages/System.Numerics.Vectors.4.4.0/THIRD-PARTY-NOTICES.TXT b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/THIRD-PARTY-NOTICES.TXT similarity index 73% rename from packages/System.Numerics.Vectors.4.4.0/THIRD-PARTY-NOTICES.TXT rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/THIRD-PARTY-NOTICES.TXT index 06055ff03e..db542ca24f 100644 --- a/packages/System.Numerics.Vectors.4.4.0/THIRD-PARTY-NOTICES.TXT +++ b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/THIRD-PARTY-NOTICES.TXT @@ -224,3 +224,86 @@ descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and without even the implied warranty of merchantability or fitness for a particular purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll similarity index 77% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll index f4fe626a31..55d867e645 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll similarity index 80% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll index 9ae3289428..63403d72f7 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll similarity index 75% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll index 25cd6111e6..0b45903440 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netcoreapp2.1/_._ b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/uap10.0.16300/_._ similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netcoreapp2.1/_._ rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/lib/uap10.0.16300/_._ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll similarity index 63% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll index 06bae391a6..8761451153 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll similarity index 65% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll index 3fba9656bf..e7637d8730 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll and b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml similarity index 100% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/uap10.0.16300/_._ b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/uap10.0.16300/_._ similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/uap10.0.16300/_._ rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/ref/uap10.0.16300/_._ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/useSharedDesignerContext.txt b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/useSharedDesignerContext.txt similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/useSharedDesignerContext.txt rename to packages/System.Runtime.CompilerServices.Unsafe.4.5.0/useSharedDesignerContext.txt diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/version.txt b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/version.txt new file mode 100644 index 0000000000..47004a02b3 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.4.5.0/version.txt @@ -0,0 +1 @@ +30ab651fcb4354552bd4891619a0bdd81e0ebdbf diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/System.Threading.Tasks.Extensions.4.5.0-rc1.nupkg b/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/System.Threading.Tasks.Extensions.4.5.0-rc1.nupkg deleted file mode 100644 index 258f0905dc..0000000000 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/System.Threading.Tasks.Extensions.4.5.0-rc1.nupkg and /dev/null differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/version.txt b/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/version.txt deleted file mode 100644 index dafbf634ec..0000000000 --- a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/version.txt +++ /dev/null @@ -1 +0,0 @@ -8f968b9e79c5721d78cc88e46fe57457fe9d490d diff --git a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/.signature.p7s b/packages/System.Threading.Tasks.Extensions.4.5.0/.signature.p7s similarity index 72% rename from packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/.signature.p7s rename to packages/System.Threading.Tasks.Extensions.4.5.0/.signature.p7s index d007188796..6d8c3555ae 100644 Binary files a/packages/System.Runtime.CompilerServices.Unsafe.4.5.0-rc1/.signature.p7s and b/packages/System.Threading.Tasks.Extensions.4.5.0/.signature.p7s differ diff --git a/packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt b/packages/System.Threading.Tasks.Extensions.4.5.0/LICENSE.TXT similarity index 68% rename from packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt rename to packages/System.Threading.Tasks.Extensions.4.5.0/LICENSE.TXT index 55cfb20817..984713a496 100644 --- a/packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt +++ b/packages/System.Threading.Tasks.Extensions.4.5.0/LICENSE.TXT @@ -1,16 +1,8 @@ -This Microsoft .NET Library may incorporate components from the projects listed -below. Microsoft licenses these components under the Microsoft .NET Library -software license terms. The original copyright notices and the licenses under -which Microsoft received such components are set forth below for informational -purposes only. Microsoft reserves all rights not expressly granted herein, -whether by implication, estoppel or otherwise. - -1. .NET Core (https://github.com/dotnet/core/) +The MIT License (MIT) -.NET Core Copyright (c) .NET Foundation and Contributors -The MIT License (MIT) +All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -28,4 +20,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/System.Threading.Tasks.Extensions.4.5.0.nupkg b/packages/System.Threading.Tasks.Extensions.4.5.0/System.Threading.Tasks.Extensions.4.5.0.nupkg new file mode 100644 index 0000000000..fc86d88cf5 Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.0/System.Threading.Tasks.Extensions.4.5.0.nupkg differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/THIRD-PARTY-NOTICES.TXT b/packages/System.Threading.Tasks.Extensions.4.5.0/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000000..db542ca24f --- /dev/null +++ b/packages/System.Threading.Tasks.Extensions.4.5.0/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,309 @@ +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netcoreapp2.1/_._ b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netcoreapp2.1/_._ similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netcoreapp2.1/_._ rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/netcoreapp2.1/_._ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll similarity index 75% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll index bf45b3931d..55408aec35 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll and b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll similarity index 74% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll index f4ac4900d5..d98daeaa09 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll and b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll similarity index 75% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll index bf45b3931d..55408aec35 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll and b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/uap10.0.16300/_._ b/packages/System.Threading.Tasks.Extensions.4.5.0/lib/uap10.0.16300/_._ similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/uap10.0.16300/_._ rename to packages/System.Threading.Tasks.Extensions.4.5.0/lib/uap10.0.16300/_._ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netcoreapp2.1/_._ b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netcoreapp2.1/_._ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll similarity index 67% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll rename to packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll index 4f5b508294..5acf022f93 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll and b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard1.0/System.Threading.Tasks.Extensions.dll differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard1.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard1.0/System.Threading.Tasks.Extensions.xml similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard1.0/System.Threading.Tasks.Extensions.xml rename to packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard1.0/System.Threading.Tasks.Extensions.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll similarity index 69% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll rename to packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll index 4049c37100..6be0435650 100644 Binary files a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll and b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard2.0/System.Threading.Tasks.Extensions.dll differ diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard2.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard2.0/System.Threading.Tasks.Extensions.xml similarity index 100% rename from packages/System.Threading.Tasks.Extensions.4.5.0-rc1/ref/netstandard2.0/System.Threading.Tasks.Extensions.xml rename to packages/System.Threading.Tasks.Extensions.4.5.0/ref/netstandard2.0/System.Threading.Tasks.Extensions.xml diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/ref/uap10.0.16300/_._ b/packages/System.Threading.Tasks.Extensions.4.5.0/ref/uap10.0.16300/_._ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/useSharedDesignerContext.txt b/packages/System.Threading.Tasks.Extensions.4.5.0/useSharedDesignerContext.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/System.Threading.Tasks.Extensions.4.5.0/version.txt b/packages/System.Threading.Tasks.Extensions.4.5.0/version.txt new file mode 100644 index 0000000000..47004a02b3 --- /dev/null +++ b/packages/System.Threading.Tasks.Extensions.4.5.0/version.txt @@ -0,0 +1 @@ +30ab651fcb4354552bd4891619a0bdd81e0ebdbf