- Implement
IParsable<TSelf>on Iban type in #138
- feat: adds hidden format (****) by @skwasjer in #377
- test: exclude transitive build assets to get rid of 1400+ empty files in output folders by @skwasjer in #371
- chore(deps): Bump Microsoft.NET.Test.Sdk from 17.13.0 to 18.0.1 by @dependabot[bot] in #373
- ci(deps): Bump actions/checkout from 5 to 6 by @dependabot[bot] in #376
- chore(deps): Bump EmptyFiles from 8.13.0 to 8.17.1 by @dependabot[bot] in #375
- ci(S6573): prefix files and paths with "./" or "--" when using glob by @skwasjer in #385
- ci(deps): Bump actions/cache from 4 to 5 by @dependabot[bot] in #382
- ci(deps): Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #383
- ci(deps): Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #384
- fix(ci): coverlet.msbuild 8.0.0 breaks our CI, revert to 6.0.4 by @skwasjer in #395
- ci(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #391
- ci(deps): bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #392
- ci(deps): bump gittools/actions from 4.2.0 to 4.3.3 by @dependabot[bot] in #393
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v6.0.0...v6.1.0
For this major release the focus was on performance improvements, updating dependencies that had breaking changes themselves, and to give some API's/types better names (which was long overdue).
The breaking changes are mostly isolated to the registry.
- chore(tfm)!: remove .NET 6 TFM (EOL) by @skwasjer in #342
- refactor!: move
EffectiveDatefromIbanStructuretype toIbanCountrytype by @skwasjer in #308 - refactor(registry)!: rename
StructureSectiontoPatternDescriptorand remove derived types by @skwasjer in #309 - refactor!: change results to record types by @skwasjer in #311
- refactor!: move token match logic to the pattern validator by @skwasjer in #312
- chore!: remove obsolete enum member
AsciiCategory.Otherby @skwasjer in #343 - perf!: change
ValidationRuleContextto readonly struct by @skwasjer in #306 - perf!: change
ValidationResultto readonly struct by @skwasjer in #307 - fix(S3442)!: change visibility of
LimitCountryRulector to private protected by @skwasjer in #357 - chore(deps)!: update Autofac from 8.0.0 to 9.0.0 by @skwasjer in #362
- perf!: use
Span<T>(and for legacy .NETunsafe char*) API's to avoid heap allocation by @skwasjer in #365
- feat(registry): reduce the
IbanRegistryby including/excluding specific countries by @skwasjer in #341 - perf: defer initializing pattern properties by @skwasjer in #315
- perf: improve mod-97,10 by reducing the number of modulo arithmetic operations by @skwasjer in #363
- feat(net10)!: add .NET 10 by @skwasjer in #366
- chore(deps): bump Verify/VerifyXunit to 30.18.0 by @skwasjer in #310
- refactor: remove
SwiftPatternusage from runtime code by @skwasjer in #316 - test: verify data of generated providers by @skwasjer in #317
- fix(T4): convert position to zero-based index by @skwasjer in #319
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.15.2 to 0.15.4 by @dependabot[bot] in #313
- ci(deps): Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #351
- ci(deps): Bump actions/download-artifact from 4 to 6 by @dependabot[bot] in #347
- ci(deps): Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #350
- ci(deps): Bump actions/setup-java from 4 to 5 by @dependabot[bot] in #348
- ci(deps): Bump gittools/actions from 3.1.1 to 4.2.0 by @dependabot[bot] in #349
- ci(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #352
- ci(deps): bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #354
- ci(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #353
- ci(runners): switch to latest runners due to EOL by @skwasjer in #356
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.15.4 to 0.15.6 by @dependabot[bot] in #344
- refactor: use extension block to polyfill newer static char API's by @skwasjer in #360
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.15.6 to 0.15.7 by @dependabot[bot] in #359
- ci: only include (s)nupkg files in artifacts from /src folder by @skwasjer in #368
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.19.1...v6.0.0
- chore: mark CheckDigits(.Calculators) namespace obsolete by @skwasjer in #370
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.19.1...v5.19.2
- refactor!: move
EffectiveDatefromIbanStructuretype toIbanCountrytype by @skwasjer in #308 - test: verify data of generated providers by @skwasjer in #317
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.19.0...v5.19.1
- perf(CA1859): use concrete types when possible for improved performance by @skwasjer in #288
- fix(CA2000): expand STA suppression by @skwasjer in #289
- fix(CA2263): prefer the generic overload by @skwasjer in #290
- perf: add benchmarks for registry initialization/lookup by @skwasjer in #303
- perf: add benchmark that provides comparison between providers by @skwasjer in #304
- style: use collection expression by @skwasjer in #287
- ci(sonar): disable JRE provisioning by @skwasjer in #292
- chore(deps): Bump FluentValidation from 11.10.0 to 11.11.0 by @dependabot[bot] in #296
- fix(S7636): expanding secrets in run blocks is security-sensitive by @skwasjer in #299
- fix(S7637): use full commit SHA hash for
gittools/actions/**dependency by @skwasjer in #300 - fix(wikipedia): T4 loader code fails because a User-Agent header is now required. by @skwasjer in #302
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.14.0 to 0.15.2 by @dependabot[bot] in #295
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.18.0...v5.19.0
- feat(registry): updated registry to r99 (SWIFT) which adds Honduras (HN) by @skwasjer in #281
- fix(registry): fixes pattern text for Pakistan (PK) by @skwasjer in #280
- fix(CA2235): mark
IbanFormatException.Result(backing field) as non-serializable by @skwasjer in #286
- chore(deps): Bump xunit and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #262
- chore(deps): Bump Microsoft.TestPlatform.ObjectModel and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #271
- chore(deps): pin FluentAssertions to v7 due to license change from Apache to a custom one by @skwasjer in #282
- chore(deps): bump PublicApiGenerator from 11.1.0 to 11.4.5. by @skwasjer in #283
- chore(deps): bump Verify.Xunit from 28.4.0 to 29.2.0 by @skwasjer in #284
- chore(deps): bump HtmlAgilityPack from 1.11.67 to 1.12.1 by @skwasjer in #285
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.17.0...v5.18.0
- fix: when enumerating registry, order by country code by @skwasjer in #240
- fix: STA warnings by @skwasjer in #229
- fix(registry): patch Finland bank code to 6 digits by @skwasjer in #257
- chore(deps): Bump VerifyVersion from 26.6.0 to 28.3.1 by @dependabot in #235
- chore(deps): Bump VerifyVersion from 28.3.1 to 28.3.2 by @dependabot in #237
- chore(deps): bump CsvHelper from 30.0.1 to 33.0.1 by @skwasjer in #241
- chore(deps): Bump VerifyVersion from 28.3.2 to 28.4.0 by @dependabot in #242
- chore(deps): Bump NSubstitute and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #245
- ci(deps): bump GitVersion to v6 by @skwasjer in #251
- ci: use pinned Ubuntu 22.04 image for tests by @skwasjer in #252
- chore(deps): bump FluentAssertions from 6.12.1 to 7.0.0 by @skwasjer in #253
- chore(deps): Bump MicrosoftNetTestSdk from 17.11.1 to 17.12.0 by @dependabot in #254
- ci(deps): bump CodeQL from v2 to v3 by @skwasjer in #255
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.16.1...v5.17.0
- chore(deps): Bump System.Text.Json from 6.0.9 to 6.0.10 in /src/IbanNet by @dependabot in #227 Microsoft Security Advisory CVE-2024-43485 | .NET Denial of Service Vulnerability
- chore(deps): Bump System.Text.Json from 6.0.9 to 8.0.5 by @dependabot in #226 Microsoft Security Advisory CVE-2024-43485 | .NET Denial of Service Vulnerability
- refactor: remove benchmark validator comparison by @skwasjer in #222
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.16.0...v5.16.1
- feat: updates SwiftRegistryProvider to r98 (July '24) by @skwasjer in #220
- feat: updated WikipediaRegistryProvider by @skwasjer in #221
- feat: generate supported countries using TT/T4 by @skwasjer in #219
- feat: add JSON conversion (STJ) support for Iban type for .NET Std 2.1 by @skwasjer in #208
- refactor: align API of shim with the built-in API. by @skwasjer in #209
- chore: remove .NET7 (EOL) by @skwasjer in #205
- chore(deps): bump test dependencies by @skwasjer in #204
- ci: attempt to fix random AppDomain unloads in CI on macos/mono by @skwasjer in #206
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows by @dependabot in #207
- chore(deps): remove net5.0/netcoreapp3.1 from test libs by @skwasjer in #210
- chore(deps): bump Microsoft.Extensions to 8.0.0 by @skwasjer in #211
- chore: make SwiftPattern fully internal, instead of public in DEBUG. by @skwasjer in #213
- test: verify public API by @skwasjer in #212
- chore(deps): bump xunit.runner.visualstudio to 2.8.2. by @skwasjer in #218
- chore(deps): bump FluentValidation to 11.9.0 by @skwasjer in #216
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.15.0...v5.16.0
- feat: Iceland is member of SEPA (according to SWIFT registry (pdf-version) but not to processed txt-version) by @MT-private in #195
- feat: QR IBAN validation is added as a standalone rule. by @taskinkemal in #196
- chore: drop .NET Standard 1.6 support by @skwasjer in #202
- chore(deps): bump Microsoft.AspNetCore.TestHost from 8.0.0-rc.2.234802 to 8.0.6 by @skwasjer in #198
- chore(deps): bump Microsoft.NET.Test.Sdk from 17.8.0 to 17.10.0 by @skwasjer in #200
- chore(deps): bump NSubstitute.Analyzers.CSharp from 1.0.16 to 1.0.17 by @skwasjer in #199
- chore(deps): bump Autofac from 6.4.0 to 8.0.0 by @skwasjer in #201
- ci: change to v4 actions / upgrade to NodeJS 20 by @skwasjer in #193
- ci: macos-latest has updated to ARM-based MacOS 14 which causes pipeline fail by @skwasjer in #197
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.14.0...v5.15.0
- perf: use code generation to unroll pattern match per country (SWIFT only) by @skwasjer in #192
- fix(xUnit1012): address static code analysis by @skwasjer in #190
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.13.10 to 0.13.12 by @dependabot in #191
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.13.0...v5.14.0
- feat(net8): add .NET 8 target framework by @skwasjer in #180
- ci: add NuGet packages.lock.json and cache NuGet folder by @skwasjer in #178
- ci(nuget): partially revert "ci: add NuGet packages.lock.json and cac… by @skwasjer in #179
- ci: refactor workflows by @skwasjer in #177
- chore(deps): Bump xunit from 2.4.2 to 2.6.1 by @dependabot in #176
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.13.9 to 0.13.10 by @dependabot in #175
- chore: .NET 8/CS12 style and perf by @skwasjer in #181
- chore: reduce build runtime by excluding satellite assemblies (in tests) by @skwasjer in #182
- chore(deps): Bump MicrosoftNetTestSdk from 17.7.2 to 17.8.0 by @dependabot in #183
- chore(deps): Bump xunit from 2.6.1 to 2.6.2 by @dependabot in #186
- ci: remove AppVeyor CI by @skwasjer in #189
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.12.0...v5.13.0
- Add german translation by @janro1 in #172
- chore(deps): Bump NSubstitute from 5.0.0 to 5.1.0 by @dependabot in #171
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.13.7 to 0.13.8 by @dependabot in #170
- chore(deps): Bump BenchmarkDotNet.Diagnostics.Windows from 0.13.8 to 0.13.9 by @dependabot in #173
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.11.0...5.12.0
- Generate regex pattern from IBAN pattern by @skwasjer in #157
- Add a
RejectCountryRuleas the direct counterpart ofAcceptCountryRuleby @skwasjer in #164
- Bump
BenchmarkDotNet.Diagnostics.Windowsfrom 0.13.6 to 0.13.7 by @dependabot in #151 - Replace
MoqwithNSubstituteby @skwasjer in #156 - Update IbanNet dependency in examples [skip ci] by @skwasjer in #159
- Create FUNDING.yml [skip ci] by @skwasjer in #160
- .NET Framework test builds fail with latest .NET SDK by @skwasjer in #154
- Remove latest .NET SDK temporarily by @skwasjer in #165
- Require approval on PR by @skwasjer in #162
- PR decoration was broken by @skwasjer in #167
- Fix warning "The property 'sonar.login' is deprecated" by @skwasjer in #168
- Bump NodeJS/Java versions to fix deprecation warning of SonarScanner by @skwasjer in #166
Full Changelog: https://github.com/skwasjer/IbanNet/compare/v5.10.0...v5.11.0
- Upgraded SWIFT registry provider to July '23 release 95, which adds Falkland Islands (FK).
- Upgraded Wikipedia registry provider, which adds North Macedonia (MK).
- #144 Add Catalan localization.
- In
IbanParserinternals, useReadOnlySpan<T>. - Add additional constructor overloads to
IbanValidator, in preparation of possible deprecation ofIbanValidatorOptions. Even if not deprecating, it is still convenient.
-
Upgraded SWIFT registry to April '23 release 94, which adds Mongolia (MN) and Nicaragua (NI).
- Importantly, the spec for Nicaragua seems to differ from what is listed on Wikipedia (28 vs 32 char length). The website of the Central Bank of Nicaragua confirms this.
- Additionally the included example for Nicaragua does NOT validate and I had to resort to patching the example data.
- the last updated timestamp of Georgia (GE) was also changed, because of an update to contact information in the spec (unused by IbanNet).
As with any new addition to the registry, some caution is advised and possibly changes are to be expected as I've seen such inaccuracies more often in the past.
-
Refactored pattern tokenizer to support wide tokens (multi char), next to (single) char tokens. This is an internal change that can unlock some extra future functionality.
-
Fix: the property
IbanRegistry.Providersis made read-only after hydrating/using the registry to prevent it from being modified.
- Upgraded SWIFT registry to Feb '23 release 93, which adds Somalia (SO) and fixes some misconfiguration for Finland (FI) removing the need for 'some' patching (no regression).
- Updated Wikipedia provider, which updates validation patterns for Dominican Republic (DO), Georgia (GE), Ireland (IE), Jordan (JO), Pakistan (PK), Palestinian territories (PS), Turkey (TR), British Virgin Islands (VG) and Burundi (BI).
- Update
FluentValidationto v11.3.0 - Updated Wikipedia registry provider which corrects the IBAN and BBAN pattern for Azerbaijan (AZ). The Swift registry (which is the default) was already correct, so there is no regression if you do not use the Wikipedia provider.
- #116 Added .NET 7 target framework support
- Performance improvements (10-20%):
- Use
CollectionsMarshal.AsSpanin some areas to improve enumeration perf - Use faster API's to change a
Span<char>back to astring - Use new .NET 7
charAPI's and aggressive inline owncharextensions - Rework
Patternlazy init to improve init time - When parsing, do not allocate and return a new copy of the input if no normalization was performed.
- Use
- Lazy initialization of
IbanRegistryis now thread safe. - Add ctor overload to
IbanGeneratorwhich enables specifying a seed for consistent, reproduceable generation. - Enable deterministic build/assemblies
- #97 Add Dutch localized exception/result messages.
- Move normalization to
IbanParserfromIbanValidator. This means that the validator is now validating 100% strict according to character pattern rules (character class, case and whitespace, etc.).ValidationResult.AttemptedValuewill now also have the raw input. Whitespace/casing is still ignored by theIbanParser. - Add Strict-property (default true) to
IbanAttributeandFluentIbanValidatorextension. When Strict=true, the input must strictly match the IBAN format rules. When Strict=false, whitespace is ignored and strict character casing enforcement is disabled (meaning, the user can input in lower and uppercase). This mode is a bit more forgiving when dealing with user-input. However it does require after successful validation, that you parse the user input withIbanParserto normalize/sanitize the input and to be able to format the IBAN in correct electronic format. - When normalizing, carriage return (CR) and line feed (LF) are no longer stripped.
IllegalCharactersResultandInvalidStructureResulthave a propertyPositionwhich indicates the 0-based position at which the first invalid character was encountered.- ~15-20% Performance improvements to pattern validator.
- Fix registration bug where if custom registry was registered, it would still additionally register IbanNet instead of ignoring.
- Regenerated Wikipedia registry which corrects IBAN pattern for Senegal (SN).
- Add code gen SWIFT CSV record patchers (so that this no longer requires manual work on each registry update)
- #78 Adds branch information to FR
- LTS: dropped support for .NET 5.0
- Updated System.ComponentModel.Annotations to v5.0.0
- Updated Autofac to 6.4.0
- Updated FluentValidation to 11.1.0
- Upgraded SWIFT registry to May '22 release 92, which adds Djibouti (DJ), fixes the bank pattern for Bahrain (BH).
- Upgraded Wikipedia registry which corrects English name for Sao Tome (ST).
- Fixed SWIFT country definitions for which the 'included country codes' contained inferred locales. The list now actually contains the expected country codes.
- LTS: dropped support for .NET 4.5.2 and .NET Standard 1.2/1.3. Added .NET 4.6.2.
- Use new
Chunk()LINQ API for .NET 6 and change ownPartition()method into polyfill for older framework targets. - Added
AcceptCountryRuleto restrict validation to a specific set of countries. The rule can be added via the validator options or dependency registration extensions.
- Change
masterbranch tomain, requiring update to CI scripts, and update all external page references.
- Add package README's
- Added .NET 6 target
- Added
IbanCountry.NativeNameproperty which returns the country name in native language, if available. - Changed the
IbanCountry.DisplayNameproperty to return the native name, if available; otherwise returns the English name. - Regenerated
WikipediaRegistryProviderto include Sudan (SD). - Implemented
IEquatable<T>. - Implemented
IFormattablewith format stringsE,PandOforElectronic,PrintandObfuscatedrespectively. - Upgraded registry to October '21 release 91 (added Burundi (BI) and updated Sudan (SD))
- Added JSON converter support for
System.Text.Jsonto theIbantype (>= .NET 5 only) - Added
iban.IsQrIban()extension method. A Swiss or Liechtenstein QR-IBAN must have a valid QR-IID, i.e. the bank number must be within the [30000, 31999] range.
- Removed deprecated contracts/code
IStructureValidationFactory,IStructureValidation,IStructureSection. Use thePatternabstraction for custom registry providers. - Removed
Iban.Parse,Iban.TryParse, use theIbanParserclass. - Added support for more countries based on Wikipedia.
- Removed
ValidationMethod, since performance in strict (= default) is now significantly faster (compared to v4.x, even in loose mode). The maintenance is not worth the little gains anymore. - Cleaned up API surface/sealed several types.
- Added
Country,Bban,BankIdentifierandBranchIdentifierproperties to theIbanvalue type. - Removed obsolete facade for
SwiftRegistryProvider. - Upgraded registry to June '21 release 90 (added Sudan (SD))
- Updated to FluentValidation v10.x, dropping .NET 4.6.1.
IIbanParserandIIbanGeneratorare now registered as singletons.- Added
IIbanRegistryas resolveable service (singleton).
- Moved
SwiftRegistryProviderto new namespace, kept facade for backwards compatibility. The facade will be removed in v5.0.
- Deprecate loose validation mode. Will be removed in v5.0.
IIbanRegistry.TryGetValuenow supports case insensitive country codes.
- #21 #31 Added
IbanGenerator. - LTS: change target frameworks .NET 4.5 and 4.7 to 4.5.2 and 4.7.2 respectively.
- Fix Iraq (IQ) and Finland (FI) patterns (does not affect validation outcome).
- Introduce pattern abstraction for registry which encapsulates a pattern string and tokenizer. Deprecates
IStructureValidationFactory, but keeps backwards compatible. Patterns are useful when implementing more/future providers to extend country support.
- Upgraded registry to March '21 release 89 (updated Andorra (AD) and El Salvador (SV))
- Added .NET 5.0 target framework support (benchmark).
- Update several nullable reference type code contracts.
- Updated to FluentValidation v9.x. This also means dropping support for .NETStandard 1.1/1.6 for FluentValidation integration.
- (breaking) Updated to Autofac v6.x (one Autofac interface changed)
- Upgraded registry to September '20 release 88 (added Libya (LY))
- Added
IbanBuilderandBbanBuildertypes.
- IBAN's are now always converted to upper case prior to validation.
- Replaced
Iban.ToString(string)withIban.ToString(IbanFormat), and added obfuscated format.
- #19 Parse should only allow non-nullable string.
- #23 AttemptedValue did not match actual value used in validation.
- #24 Structure test will ignore country code casing.
- Upgraded registry to May '20 release 87 (changes to ST)
- Added
IbanParserwhich provides equivalent non-static functionality toIban.ParseandIban.TryParse(which will be obsolete). - Added .NET Standard 2.1 target
- Enabled and refactored for non-nullable reference types.
- Added abstraction to load registry from different sources.
- Added
ICheckDigitsCalculatorabstraction. - Exposing
IIbanValidationRuleallowing custom validation rules. - Performance improvements
- (breaking)
Iban.ParseandIban.TryParseare obsolete, useIIbanParser. - (breaking) Added IbanValidator ctor overload accepting an
IbanValidatorOptionsclass, providing options with validation method (strict = default vs loose), extensibility through custom rules. - (breaking) Refactored out enum
IbanValidationResult, replaced with result object pattern for extensibility. - (breaking)
ValidationResultnow containsError-property containing the error that occurred. - (breaking) Remove deprecated TypeConverter facade.
- (breaking) Remove deprecated ctor (accepting
Lazy). - (breaking)
IbanValidator.SupportedCountriesnow is a dictionary, allowing look up by country code. - (breaking) Renamed
CountryInfotoIbanCountry. - (breaking) Renamed
ValidationResult.ValuetoValidationResult.AttemptedValue. - (breaking) Moved
BranchandBankproperties fromBbanStructuretoIbanCountryand all offsets are now relative to entire IBAN. This makes it easier to extract this data from an IBAN. - (breaking)
IbanAttributeno longer uses staticIban.Validatoras fallback since it is unclear it does so. TheIIbanValidatorwill now only be resolved from IoC container and as such if not registered an exception is thrown.
- backport: Upgraded registry to May '20 release 87 (changes to ST)
- Upgraded registry to Januari '20 release 85 (improves Egypt, not effective until 2021).
- Upgraded registry to October '19 release 84 (adds Egypt).
- Enabled SourceLink.
- Removed ability to apply
IbanAttributeto fields, since model validation does not occur for fields. - Improved continuous integration, added code coverage.
- Deprecated
IbanNet.IbanTypeConverter, replaced byIbanNet.TypeConverters.IbanTypeConverter. - Added IbanNet.FluentValidation package.
- Upgraded registry to April '19 release 83.
- Added extra target frameworks
.NET 4.7,.NET Standard 1.6and.NET Standard 2.0
- Partial rewrite to support the official Swift IBAN registry.
- Added support for 4 more countries for a total of 76.
- Added details through
CountryInfo, including IBAN, BBAN, bank and branch structure information, whether a country is a SEPA member and more. - (breaking) Replaced
IbanValidator.SupportedRegionswithIbanValidator.SupportedCountries. - (breaking) The
IIbanValidator.Validatemethod now returns aValidationResultobject, instead of an enum value, in order to provide more information of the validation.
- Added IbanNet.DataAnnotations for DataAnnotation support.
- (breaking) retarget from .NET Framework 4.5.2 to .NET 4.5.
- Added
TypeConvertersupport.
- Expose supported regions via
IbanValidator.SupportedRegions
- Convert to .NET Standard 1.2
- Initial release with support for 72 countries