La création des Fichiers iCal en c#
Je suis à la recherche d'une bonne méthode de génération d'un fichier iCalendar (*.ics) en c# (asp.net). J'ai trouvé quelques ressources, mais une chose qui manque, c'est leur soutien pour quoted-printable champs - champs qui ont des retours chariot et les sauts de ligne.
Par exemple, si le description champ n'est pas correctement codés, seule la première ligne de l'afficheur et éventuellement d'endommager le reste de l'information dans l' *.fichier ics.
Je suis à la recherche pour les classes qui peuvent générer des *.fichiers ics et/ou une classe qui peut générer quoted-printable champs.
- Même si cette question était il y a longtemps, j'ai pensé que je ferais remarquer que le quoted-printable champs ne font pas partie de la norme iCalendar (vCalendar 2.0). Ils font partie de la vCalendar standard (vCalendar 1.0), qui est rarement (voire jamais) utilisé de nos jours. iCalendar a sa propre méthode d'échapper à des données beaucoup plus propre et plus facile à interpréter que quoted-printable.
Vous devez vous connecter pour publier un commentaire.
- Je utiliser Bjour.Ical, ses bonnes choses.
A la capacité d'ouvrir un fichier ical et obtenir ses données dans un joli modèle d'objet. Il dit bêta, mais il fonctionne très bien pour nous.
Modifier Nov 2016
Cette bibliothèque a été abandonné, mais il a été repris et publié de nouveau comme iCal.NET par un autre dev.
Notes à propos de la publication: rianjs.net/2016/07/dday-ical-is-now-ical-net
Source sur GitHub: github.com/rianjs/ical.net
La façon la plus simple que j'ai trouvé de le faire est de balisage HTML à l'aide de les microformats.
Si vous êtes à la recherche pour générer des fichiers iCalendar alors vous pouvez utiliser les microformat hCalendar ensuite inclure un lien comme "Ajouter au Calendrier" qui pointe vers:
http://feeds.technorati.com/events/%5B de votre page URL complète, y compris http://]
La Technorati page puis analyse de votre page, extraits de la hCalendar info et envoie le fichier iCalendar pour le client.
J'ai écrit une cale de fonction pour gérer cela. C'est surtout conforme--la seule raccrocher, c'est que la première ligne est de 74 caractères au lieu de 75 (74 est de gérer l'espace sur les lignes suivantes)...
- Je l'utiliser pour le résumé et la description sur notre ICS nourrir. Tout d'alimentation de la ligne avec le champ déjà ajouté (par exemple, LongText = "RÉSUMÉ:Titre de l'Évènement"). Aussi longtemps que vous définissez la mise en cache décemment de long, il n'est pas trop cher d'une opération.
iCal (ical 2.0) et quoted-printable ne vont pas ensemble.
Quoted-printable est beaucoup utilisé dans les vCal (vCal 1.0) pour représenter les caractères non-imprimables, par exemple, des sauts de lignes (=0D=0A). La valeur par défaut vCal codage 7 bits, donc parfois vous avez besoin d'utiliser quoted-printable pour représenter les caractères non-ASCII (vous pouvez remplacer le codage par défaut, mais les autres vCal conformes à la communication du parti n'est pas nécessaire pour le comprendre.)
Dans iCal, les caractères spéciaux sont représentées à l'aide d'évasions, par exemple, '\n'. L'encodage par défaut est UTF-8, tout iCal conforme parties doivent les prendre en charge et qui fait quoted-printable complètement inutile dans iCal 2.0 (et vCard 3.0, d'ailleurs).
Vous pouvez avoir besoin pour sauvegarder vos clients/parties prenantes afin de clarifier les exigences. Il semble y avoir une confusion entre vCal et iCal.
Découvrez http://www.codeproject.com/KB/vb/vcalendar.aspx
Il ne gère pas le quoted-printable champs comme vous l'avez demandé, mais le reste du code qui est là et qui peut être modifié.
Selon la RFC 2445, l'observation et la description des champs de TEXTE. Les règles pour un champ de test sont:
[1] Une seule ligne dans un champ de TEXTE est de ne pas dépasser 75 octets.
[2] d'Emballage est réalisé par l'insertion d'un CRLF suivie par des espaces.
[3] Il y a plusieurs personnages qui doivent être codées y compris \ (barre oblique inverse) ; (point-virgule) , (virgule) et retour à la ligne. À l'aide d'un \ (barre oblique inverse) comme délimiteur donne \ \; \, \n
Exemple: L'exemple suivant est un exemple de la propriété avec formaté
les sauts de ligne dans la valeur de la propriété:
iCal peut être compliqué, donc je recommande d'utiliser une bibliothèque. Le jour j est une bonne solution libre. Dernière, j'ai vérifié qu'il n'avait pas plein de soutien pour les événements récurrents, mais d'autres que c'est vraiment sympa. Certainement tester les calendriers avec plusieurs clients.
je sais que c'est trop tard, mais il peut aider les autres. dans mon cas, j'ai écrit la suite de fichier texte .ics extension
il a travaillé pour moi.
Je suis absent un exemple avec la coutume des fuseaux horaires. Voici donc un extrait de code qui montrent comment vous pouvez définir un fuseau horaire à l'ics (et de l'envoyer au navigateur asp.net).