2011-07-26 19 views
5

デバイスからフェッチされた予定からiCal文字列を生成する必要があります。予定からiCalを生成するためにWindows Phone 7でサポートされているライブラリはありますか?Windows Phone 7 - iCal Generator - C#

私はDDay.iCalを試してみましたが、それはWindowsの携帯電話7

答えて

3

あり、私は全体来ているの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:[email protected] 
DTSTAMP:19970714T170000Z 
ORGANIZER;CN=John Doe:MAILTO:[email protected] 
DTSTART:19970714T170000Z 
DTEND:19970715T035959Z 
SUMMARY:Bastille Day Party 
END:VEVENT 
END:VCALENDAR 

だからあなたはBEGINとVCALENDARを終了し、そして(UIDなど)いくつかの必須フィールドがあり、その中のVEVENT、注意してください。注意すべき唯一のことは、あなたが長いテキストをフィールドにthis stack overflow questionから、このメソッドを使用できるように仕様が、解体される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文字ごとに挿入します。

幸運にも、お楽しみください! :)

関連する問題