我需要从设备中获取的约会生成iCal字符串。是否有任何在Windows Phone 7上支持生成iCal的库?
我尝试了DDay.iCal,但它不适用于Windows Phone 7。
我需要从设备中获取的约会生成iCal字符串。是否有任何在Windows Phone 7上支持生成iCal的库?
我尝试了DDay.iCal,但它不适用于Windows Phone 7。
我还没有遇到专门为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