2013-08-07 - THIS PORT IS NO LONGER MAINTAINED, FEEL FREE TO FORK THIS REPOSITORY AND KEEP UP WITH UPSTREAM UPDATES.
Please checkout csharp branch to get C# code
C# port of Google's libphonenumber library:
The code was rewritten from the Java source mostly unchanged, please refer to the original documentation for sample code and API documentation.
The original Apache License 2.0 was preserved.
See csharp/README.txt for details about the port.
- Parsing/formatting/validating phone numbers for all countries/regions of the world.
- GetNumberType - gets the type of the number based on the number itself; able to distinguish Fixed-line, Mobile, Toll-free, Premium Rate, Shared Cost, VoIP and Personal Numbers (whenever feasible).
- IsNumberMatch - gets a confidence level on whether two numbers could be the same.
- GetExampleNumber/GetExampleNumberByType - provides valid example numbers for 218 countries/regions, with the option of specifying which type of example phone number is needed.
- IsPossibleNumber - quickly guessing whether a number is a possible phonenumber by using only the length information, much faster than a full validation.
- AsYouTypeFormatter - formats phone numbers on-the-fly when users enter each digit.
- FindNumbers - finds numbers in text input
The library is available on NuGet:
People have asked the NuGet assembly to be "strong named" before being pushed in NuGet. Not working much with .NET anymore, I do not have relevant experience about this issue but the lengthy discussion below convinced me the problem was still heavily argued in .NET world and even at NuGet level. Reading the current conclusions I prefer not to sign the assemblies for now, waiting for either NuGet to provide a solution at packaging level or to see a broader concensus emerge in public discussions.
"The assembly strong naming conundrum": https://nuget.codeplex.com/discussions/247827