vCard Serializer and Parser for C#
Switch branches/tags
Nothing to show
Clone or download
MixERP
MixERP Merge pull request #3 from MoeMorox/validation-parsing
Added simple validation parsing
Latest commit 9a4dbd4 May 8, 2017
Permalink
Failed to load latest commit information.
src Added Exception for invalid input May 8, 2017
.gitignore Initial commit Feb 13, 2017
LICENSE.MD Create LICENSE.MD Feb 14, 2017
README.md Routine development. Feb 15, 2017

README.md

MixERP.Net.VCards

VCards is a standard-compliant, lightweight, and forgiving vCard parser written in C# which supports parsing and serializing vCards. The following versions are supported:

  • Version 2.1
  • Version 3.0
  • Version 4.0

How to Use this Library?

Download Nuget Package

Install-Package MixERP.Net.VCards

Create a vCard

var vcard = new VCard
{
    Version = VCardVersion.V4,
    FormattedName = "John Doe",
    FirstName = "John",
    LastName = "Doe",
    Classification = ClassificationType.Confidential,
    Categories = new[] {"Friend", "Fella", "Amsterdam"},
    //...
};

Serialize a vCard and Save as a VCF File

string serialized = vcard.Serialize();
string path = Path.Combine("C:\", "JohnDoe.vcf");
File.WriteAllText(path, serialized);

Parse a VCF File

IEnumerable<VCard> vcards = MixERP.Net.VCards.Deserializer.Deserialize(path);

or

string contents = File.ReadAllText(path, Encoding.UTF8);
IEnumerable<VCard> vcards = MixERP.Net.VCards.Deserializer.GetVCards(contents);

foreach (var vcard in vcards)
{
    Console.WriteLine(vcard.FirstName + " \t " + vcard.MiddleName + " " + vcard.LastName);
    Console.WriteLine(vcard.FormattedName);
}
Console.ReadLine();

Supported V2 Features:

For more info, please see the specifications here

  • Formatted Name (FN string)
  • Last Name (N string)
  • First Name (N string)
  • Middle Name (N string)
  • Prefix (N string)
  • Suffix (N string)
  • BirthDay (BDAY string)
  • Addresses (ADR complex enumerable)
  • Delivery Address (LABEL complex)
  • Telephones (TEL complex enumerable)
  • Emails (EMAIL complex enumerable)
  • Mailer (MAILER string)
  • Title (TITLE string)
  • Role (ROLE string)
  • Time Zone (TITLE TimeZoneInfo)
  • Logo (LOGO string, Base64 Encoded)
  • Photo (PHOTO string, Base64 Encoded)
  • Note (NOTE string)
  • Last Revision (REV DateTime?)
  • Url (URL Uri)
  • Unique Identifier (UID string)
  • Version (VERSION enum)
  • Organization (ORG string)
  • Organizational Unit (ORG string)
  • Longitude (GEO double)
  • Latitude (GEO double)

Supported V3 Features:

For more info, please see the RFC 2426 specifications here

  • Nick Name (NICKNAME string)
  • Categories (CATEGORIES string[])
  • Sort String (SORT-STRING string)
  • Sound (SOUND string, Base64 Encoded)
  • Key (KEY string, Base64 Encoded)
  • Classification (CLASS enum)

Supported V4 Features:

For more info, please see the RFC 6350 specifications here

  • Source (SOURCE Uri)
  • Kind (KIND enum)
  • Anniversary (ANNIVERSARY DateTime?)
  • Gender (GENDER enum)
  • Impps (IMPP complex ienumerable)
  • Languages (LANG complex enumerable)
  • Relations (RELATED complex enumerable)
  • Calendar User Addresses (CALADRURI Uri enumerable)
  • Calendar Addresses (CALURI complex enumerable)