c# - Windows Phone 7 - iCal 生成器 - C#

标签 c# windows-phone-7 icalendar

我需要根据从设备获取的约会生成 iCal 字符串。 Windows Phone 7 是否支持从约会生成 iCal 的任何库?

我试过了 DDay.iCal , 但它不适用于 Windows Phone 7。

最佳答案

我没有遇到过特定于 Windows Phone 7 的库,但是编写自己的类来生成 iCal 文件应该不会太困难,因为毕竟 iCal 只是文本。 The RFC is quite a dense read , 但使用了一些在线引用 like this one并查看一些示例 iCal 文件应该足以开始。以来自维基百科的 iCal 文件为例:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR

因此请注意,您开始和结束一个 VCALENDAR,以及其中的一个 VEVENT,其中有一些必填字段(如 UID)。唯一需要注意的是规范要求超过 75 个八位字节的行被分解,所以你可以使用 this stack overflow question 中的这个方法。对于长文本字段:

Private Function RFC2445TextField(ByVal LongText As String) As String

     LongText = LongText.Replace("\", "\\")
     LongText = LongText.Replace(";", "\;")
     LongText = LongText.Replace(",", "\,")


     Dim sBuilder As New StringBuilder
     Dim charArray() As Char = LongText.ToCharArray

     For i = 1 To charArray.Length
         sBuilder.Append(charArray(i - 1))
         If i Mod 74 = 0 Then sBuilder.Append(vbCrLf & " ")
     Next

     Return sBuilder.ToString

 End Function

该函数基本上转义了所有必需的转义字符,并每 74 个字符插入一个换行符/空格。

祝你好运,玩得开心! :)

关于c# - Windows Phone 7 - iCal 生成器 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829421/

相关文章:

c# - 对 ASP.NET 自定义验证器进行排序以及验证器的 Text 和 ErrorMessage 属性之间的差异

c# - 线程同步 : shared resources and actions with different resource number demand

c# - 使用 AWS SDK 和 Moq 时无法对 Mock 的对象进行类型转换

javascript - HTML:iCal 链接?

icalendar - 周末的 RRULE,包括一个月的第一个星期日

c# - 我是否正确使用了 Automapper 2.0 的包含功能?

windows-phone-7 - 将大文本放入 Textblock 和 ScrollViewer

windows-phone-7 - ToggleSwitch 标题颜色

c# - 如何 'await' WebClient.UploadStringAsync 请求?

time - Outlook 是否正确处理 .ics (ICalendar) 文件的时区?