Windows Phone 7 - iCal生成器 - C#

5

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

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

1个回答

3

我还没有遇到专门为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之间进行BEGIN和END标记,并且其中有一些必填字段(例如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个字符处插入换行符/空格。
祝好运,玩得开心! :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接