TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+
+
+
+
+
+ 1.
+ Definitions.
+
+
+
+
+
"License" shall mean the terms and conditions for use, reproduction, and distribution
+ as defined by Sections 1 through 9 of this document.
+
+
+
+
+
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner
+ that is granting the License.
+
+
+
+
+
"Legal Entity" shall mean the union of the acting entity and all other entities that
+ control, are controlled by, or are under common control with that entity. For the purposes of
+ this definition, "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or otherwise, or (ii) ownership of
+ fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such
+ entity.
+
+
+
+
+
"You" (or "Your") shall mean an individual or Legal Entity exercising
+ permissions granted by this License.
+
+
+
+
+
"Source" form shall mean the preferred form for making modifications, including but not
+ limited to software source code, documentation source, and configuration files.
+
+
+
+
+
"Object" form shall mean any form resulting from mechanical transformation or
+ translation of a Source form, including but not limited to compiled object code, generated
+ documentation, and conversions to other media types.
+
+
+
+
+
"Work" shall mean the work of authorship, whether in Source or Object form, made
+ available under the License, as indicated by a copyright notice that is included in or
+ attached to the work (an example is provided in the Appendix below).
+
+
+
+
+
"Derivative Works" shall mean any work, whether in Source or Object form, that is based
+ on (or derived from) the Work and for which the editorial revisions, annotations,
+ elaborations, or other modifications represent, as a whole, an original work of authorship.
+ For the purposes of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative
+ Works thereof.
+
+
+
+
+
"Contribution" shall mean any work of authorship, including the original version of the
+ Work and any modifications or additions to that Work or Derivative Works thereof, that is
+ intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an
+ individual or Legal Entity authorized to submit on behalf of the copyright owner. For the
+ purposes of this definition, "submitted" means any form of electronic, verbal, or
+ written communication sent to the Licensor or its representatives, including but not limited
+ to communication on electronic mailing lists, source code control systems, and issue tracking
+ systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and
+ improving the Work, but excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+
+
+
+
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom
+ a Contribution has been received by Licensor and subsequently incorporated within the
+ Work.
+
+
+
+
+
+
+
+ 2.
+ Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor
+ hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+ irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or
+ Object form.
+
+
+
+ 3.
+ Grant of Patent License. Subject to the terms and conditions of this License, each Contributor
+ hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+ irrevocable (except as stated in this section) patent license to make, have made, use, offer
+ to sell, sell, import, and otherwise transfer the Work, where such license applies only to
+ those patent claims licensable by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s) with the Work to which such
+ Contribution(s) was submitted. If You institute patent litigation against any entity
+ (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+ Contribution incorporated within the Work constitutes direct or contributory patent
+ infringement, then any patent licenses granted to You under this License for that Work shall
+ terminate as of the date such litigation is filed.
+
+
+
+ 4.
+ Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof
+ in any medium, with or without modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+
+
+
+ (a)
+ You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+
+
+ (b)
+ You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+
+
+ (c)
+ You must retain, in the Source form of any Derivative Works that You distribute, all
+ copyright, patent, trademark, and attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of the Derivative Works; and
+
+
+
+ (d)
+ If the Work includes a "NOTICE" text file as part of its distribution, then any
+ Derivative Works that You distribute must include a readable copy of the attribution
+ notices contained within such NOTICE file, excluding those notices that do not pertain to
+ any part of the Derivative Works, in at least one of the following places: within a NOTICE
+ text file distributed as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or, within a display generated
+ by the Derivative Works, if and wherever such third-party notices normally appear. The
+ contents of the NOTICE file are for informational purposes only and do not modify the
+ License. You may add Your own attribution notices within Derivative Works that You
+ distribute, alongside or as an addendum to the NOTICE text from the Work, provided that
+ such additional attribution notices cannot be construed as modifying the License.
+
You may add Your own copyright statement to Your modifications and may provide additional or
+ different license terms and conditions for use, reproduction, or distribution of Your
+ modifications, or for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with the conditions stated
+ in this License.
+
+
+
+
+
+
+
+ 5.
+ Submission of Contributions. Unless You explicitly state otherwise, any Contribution
+ intentionally submitted for inclusion in the Work by You to the Licensor shall be under the
+ terms and conditions of this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate
+ license agreement you may have executed with Licensor regarding such Contributions.
+
+
+
+ 6.
+ Trademarks. This License does not grant permission to use the trade names, trademarks, service
+ marks, or product names of the Licensor, except as required for reasonable and customary use
+ in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+
+
+ 7.
+ Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor
+ provides the Work (and each Contributor provides its Contributions) on an "AS IS"
+ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
+ without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY,
+ or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any risks associated with Your
+ exercise of permissions under this License.
+
+
+
+ 8.
+ Limitation of Liability. In no event and under no legal theory, whether in tort (including
+ negligence), contract, or otherwise, unless required by applicable law (such as deliberate and
+ grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for
+ damages, including any direct, indirect, special, incidental, or consequential damages of any
+ character arising as a result of this License or out of the use or inability to use the Work
+ (including but not limited to damages for loss of goodwill, work stoppage, computer failure or
+ malfunction, or any and all other commercial damages or losses), even if such Contributor has
+ been advised of the possibility of such damages.
+
+
+
+ 9.
+ Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works
+ thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty,
+ indemnity, or other liability obligations and/or rights consistent with this License. However,
+ in accepting such obligations, You may act only on Your own behalf and on Your sole
+ responsibility, not on behalf of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability incurred by, or claims asserted
+ against, such Contributor by reason of your accepting any such warranty or additional
+ liability.
+
+
+
+
+
+
END OF TERMS AND CONDITIONS
+
+
APPENDIX: How to apply the Apache License to your work.
+
+
To apply the Apache License to your work, attach the following boilerplate notice, with the fields
+ enclosed by brackets "[]" replaced with your own identifying information. (Don't
+ include the brackets!) The text should be enclosed in the appropriate comment syntax for the file
+ format. We also recommend that a file or class name and description of purpose be included on the same
+ "printed page" as the copyright notice for easier identification within third-party
+ archives.
+
+
Copyright [yyyy] [name of copyright owner]
+
+
Licensed under the Apache License, Version 2.0 (the "License");
+
+
+you may not use this file except in compliance with the License.
+
+
+You may obtain a copy of the License at
+
+
+
http://www.apache.org/licenses/LICENSE-2.0
+
+
Unless required by applicable law or agreed to in writing, software
+
+
+distributed under the License is distributed on an "AS IS" BASIS,
+
+
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+
+See the License for the specific language governing permissions and
+
+
+limitations under the License.
+
+
+
+
+
+
Standard License Header
+
+
Copyright [yyyy] [name of copyright owner]
+
+
Licensed under the Apache License, Version 2.0 (the "License");
+
+
+you may not use this file except in compliance with the License.
+
+
+You may obtain a copy of the License at
+
+
+
http://www.apache.org/licenses/LICENSE-2.0
+
+
Unless required by applicable law or agreed to in writing, software
+
+
+distributed under the License is distributed on an "AS IS" BASIS,
+
+
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+
+See the License for the specific language governing permissions and
+
+
+limitations under the License.
+
+
+
diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE
new file mode 100644
index 0000000..62d5ca8
--- /dev/null
+++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Andreas Zimmermann, wan24.de
+
+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.
diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html
new file mode 100644
index 0000000..ce9da3e
--- /dev/null
+++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/Microsoft.Extensions.Diagnostics.Abstractions.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 'MIT' reference
+
+
+
+
+
+
+
MIT License
+
+
SPDX identifier
+
MIT
+
+
License text
+
+
+
MIT License
+
+
+
+
Copyright (c) <year> <copyright holders>
+
+
+
+
+
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
+ (including the next paragraph)
+ 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.
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
+ (including the next paragraph)
+ 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.
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
+ (including the next paragraph)
+ 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.
+
+
diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md
new file mode 100644
index 0000000..891840e
--- /dev/null
+++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/README.md
@@ -0,0 +1,31 @@
+# Licenses
+
+This document describes used 3rd party software and their licenses. The
+license texts can be found in the text files named after the library. The
+exact used library versions can be found in the project files, which are
+published in the
+[GitHub repository](https://github.com/nd1012/ObjectValidation).
+
+Linked project and license URIs come from the referenced NuGet package meta
+data. None of these libraries have been modified and are being used in their
+original published form.
+
+## ObjectValidation-CountryValidator referenced libraries
+
+The published `ObjectValidation-CountryValidator` library uses the following
+referenced open source libraries:
+
+| Library | License |
+| ------- | ------- |
+| [`ObjectValidation`](https://github.com/nd1012/ObjectValidation) | [MIT](https://github.com/nd1012/ObjectValidation/blob/main/LICENSE) |
+| [`CountryValidator`](https://github.com/anghelvalentin/CountryValidator) | [Apache 2.0](https://licenses.nuget.org/Apache-2.0) |
+
+These referenced libraries have transistive references to these open source
+libraries:
+
+| Library | License |
+| ------- | ------- |
+| [`Microsoft.Extensions.DependencyInjection.Abstractions`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
+| [`Microsoft.Extensions.Options`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
+| [`Microsoft.Extensions.Primitives`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
+| [`System.ComponentModel.Annotations`](https://github.com/dotnet/corefx) | [MIT](https://licenses.nuget.org/MIT) |
diff --git a/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html
new file mode 100644
index 0000000..ce9da3e
--- /dev/null
+++ b/src/ObjectValidation CountryValidator/ObjectValidation-CountryValidator licenses/System.ComponentModel.Annotations.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 'MIT' reference
+
+
+
+
+
+
+
MIT License
+
+
SPDX identifier
+
MIT
+
+
License text
+
+
+
MIT License
+
+
+
+
Copyright (c) <year> <copyright holders>
+
+
+
+
+
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
+ (including the next paragraph)
+ 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.
+
+
diff --git a/src/ObjectValidation Docs/ObjectValidation Docs.csproj b/src/ObjectValidation Docs/ObjectValidation Docs.csproj
deleted file mode 100644
index 2c9d59c..0000000
--- a/src/ObjectValidation Docs/ObjectValidation Docs.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- net8.0
- ObjectValidation_Docs
- enable
- enable
-
-
-
-
-
-
-
diff --git a/src/ObjectValidation Tests/ObjectValidation Tests.csproj b/src/ObjectValidation Tests/ObjectValidation Tests.csproj
index 0806c6d..a1f193e 100644
--- a/src/ObjectValidation Tests/ObjectValidation Tests.csproj
+++ b/src/ObjectValidation Tests/ObjectValidation Tests.csproj
@@ -8,13 +8,14 @@
falsetrue
+ True
-
-
-
-
+
+
+
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/ObjectValidation.sln b/src/ObjectValidation.sln
index 387dc78..5d431a9 100644
--- a/src/ObjectValidation.sln
+++ b/src/ObjectValidation.sln
@@ -9,8 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation Tests", "O
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation CountryValidator", "ObjectValidation CountryValidator\ObjectValidation CountryValidator.csproj", "{BBB4D066-F727-4052-828A-5BA6C6A96491}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectValidation Docs", "ObjectValidation Docs\ObjectValidation Docs.csproj", "{A6B522DC-57EA-4B8E-BDE7-37016E7AA672}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -29,8 +27,6 @@ Global
{BBB4D066-F727-4052-828A-5BA6C6A96491}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BBB4D066-F727-4052-828A-5BA6C6A96491}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BBB4D066-F727-4052-828A-5BA6C6A96491}.Release|Any CPU.Build.0 = Release|Any CPU
- {A6B522DC-57EA-4B8E-BDE7-37016E7AA672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A6B522DC-57EA-4B8E-BDE7-37016E7AA672}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/ObjectValidation/ObjectValidation licenses/LICENSE b/src/ObjectValidation/ObjectValidation licenses/LICENSE
new file mode 100644
index 0000000..62d5ca8
--- /dev/null
+++ b/src/ObjectValidation/ObjectValidation licenses/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Andreas Zimmermann, wan24.de
+
+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.
diff --git a/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html
new file mode 100644
index 0000000..ce9da3e
--- /dev/null
+++ b/src/ObjectValidation/ObjectValidation licenses/Microsoft.Extensions.Diagnostics.Abstractions.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 'MIT' reference
+
+
+
+
+
+
+
MIT License
+
+
SPDX identifier
+
MIT
+
+
License text
+
+
+
MIT License
+
+
+
+
Copyright (c) <year> <copyright holders>
+
+
+
+
+
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
+ (including the next paragraph)
+ 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.
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
+ (including the next paragraph)
+ 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.
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
+ (including the next paragraph)
+ 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.
+
+
diff --git a/src/ObjectValidation/ObjectValidation licenses/README.md b/src/ObjectValidation/ObjectValidation licenses/README.md
new file mode 100644
index 0000000..ed785ba
--- /dev/null
+++ b/src/ObjectValidation/ObjectValidation licenses/README.md
@@ -0,0 +1,28 @@
+# Licenses
+
+This document describes used 3rd party software and their licenses. The
+license texts can be found in the text files named after the library. The
+exact used library versions can be found in the project files, which are
+published in the
+[GitHub repository](https://github.com/nd1012/ObjectValidation).
+
+Linked project and license URIs come from the referenced NuGet package meta
+data. None of these libraries have been modified and are being used in their
+original published form.
+
+## ObjectValidation referenced libraries
+
+The published `ObjectValidation` library uses the following referenced open
+source libraries:
+
+| Library | License |
+| ------- | ------- |
+| [`Microsoft.Extensions.Options`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
+
+These referenced libraries have transistive references to these open source
+libraries:
+
+| Library | License |
+| ------- | ------- |
+| [`Microsoft.Extensions.DependencyInjection.Abstractions`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
+| [`Microsoft.Extensions.Primitives`](https://dot.net/) | [MIT](https://licenses.nuget.org/MIT) |
diff --git a/src/ObjectValidation/ObjectValidation.csproj b/src/ObjectValidation/ObjectValidation.csproj
index 28faa28..af765d0 100644
--- a/src/ObjectValidation/ObjectValidation.csproj
+++ b/src/ObjectValidation/ObjectValidation.csproj
@@ -22,10 +22,11 @@
LICENSETrueREADME.md
- 2.5.0
+ 2.6.0embeddedtrueDebug;Release;Trunk
+ True
@@ -38,6 +39,21 @@
True\
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+ True\
diff --git a/src/ObjectValidation/RequiredIfAttribute.cs b/src/ObjectValidation/RequiredIfAttribute.cs
index bef90a8..e691737 100644
--- a/src/ObjectValidation/RequiredIfAttribute.cs
+++ b/src/ObjectValidation/RequiredIfAttribute.cs
@@ -12,6 +12,7 @@ namespace wan24.ObjectValidation
/// Checked property name
/// Values (one of the value is required in order to match this condition; if not given, the value is required if the checked property has a non-
/// value)
+ [AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class RequiredIfAttribute(string propertyName, params object?[] values) : RequiredAttribute()
{
///
diff --git a/src/ObjectValidation/ValidationHelper.cs b/src/ObjectValidation/ValidationHelper.cs
new file mode 100644
index 0000000..a699ef6
--- /dev/null
+++ b/src/ObjectValidation/ValidationHelper.cs
@@ -0,0 +1,24 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace wan24.ObjectValidation
+{
+ ///
+ /// Object validation helper
+ ///
+ public static class ValidationHelper
+ {
+ ///
+ /// Create a validation result
+ ///
+ /// Error message
+ /// Context
+ ///
+ public static ValidationResult CreateValidationResult(in string message, in ValidationContext validationContext)
+ => new(
+ validationContext.MemberName is null
+ ? message
+ : $"{validationContext.MemberName}: {message}",
+ validationContext.MemberName is null ? null : new string[] { validationContext.MemberName }
+ );
+ }
+}