Skip to content

bolorundurowb/vCardLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

vCardLib: A vCard (.vcf) Processing Library

NuGet Badge Coverage Status NET Standard NET Standard License: MIT


This library provides functionality for working with vCard files.

Features:

  • Read multiple contacts from a single vcf file, stream, or contact string.
  • Returns contact data as an IEnumerable object for easy iteration.
  • Supports reading and writing vCard versions 2.1, 3.0, and 4.0.

Branches:

  • master: This branch contains the latest breaking changes and features. For the most recent stable release (v4), please see the v4 tag.

Important: The master branch may contain unstable code and is not recommended for production use.

Improvements:

  • Clarity: I've rephrased some sentences to be more clear and concise.
  • Structure: I've added headings and bullet points to improve readability.
  • Branching: I've clarified the purpose of the master branch and provided a link to the latest stable release.
  • Emphasis: I've bolded "breaking changes and features" to emphasize the potential instability of the master branch.

I hope this improved markdown is helpful!

How to use this library:

First get this package from nuget via your package manager:

Install-Package vCardLib.dll

or

dotnet add package vCardLib.dll

For Deserialization

Deserialize from a file

string filePath = // path to vcf file;
IEnumerable<vCard> contacts = vCardDeserializer.FromFile(filePath);

Deserialize from a Stream

var stream = // generate stream containing serialized vcards
IEnumerable<vCard> contacts = vCardDeserializer.FromStream(stream);

Deserialize from a string

var contactDetails = @"BEGIN:VCARD
VERSION:2.1
N:John;Doe;;;
END:VCARD";
IEnumerable<vCard> contacts = vCardDeserializer.FromContent(contactDetails);

For Serialization

Serialize as string

var vcard = new vCard(vCardVersion.v2)
{
    FormattedName = "John Doe"
};
var serialized = vCardSerializer.Serialize(vcard);

/*
BEGIN:VCARD
VERSION:2.1
REV:20230719T001838Z
FN:John Doe
END:VCARD
 */

Serialize with an override

This allows a vcard to get serialized to a different version

var vcard = new vCard(vCardVersion.v2)
{
    FormattedName = "John Doe"
};
var serialized = vCardSerializer.Serialize(vcard, vCardVersioon.v4);

/*
BEGIN:VCARD
VERSION:4.0
REV:20230719T001838Z
FN:John Doe
END:VCARD
 */

Contributors

A huge thank you to these wonderful people who took time to contribute to this project.


@bolorundurowb, @crowar , @rmja, @JeanCollas