Windows Phone 7 - iCal Generator - C#

本文关键字:Generator iCal Windows Phone | 更新日期: 2023-09-27 18:03:25

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

我试过了。

Windows Phone 7 - iCal Generator - C#

我没有遇到过针对Windows Phone 7的特定库,但编写自己的类来生成iCal文件应该不会太难,毕竟iCal只是文本。RFC是一个相当密集的阅读,但使用一些在线参考资料,如本文,并查看一些示例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个字节的行,因此您可以使用这个堆栈溢出问题中的方法来处理长文本字段:

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个字符插入一个换行符/空格。

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