8

次のコードがあります。

private static string FindAppointmentsAsXmlString(CalendarView calendar, ExchangeService serv)
{
    FindItemsResults<Appointment> appointments = serv.FindAppointments(WellKnownFolderName.Calendar, calendar);

    var serializer = new XmlSerializer(appointments.GetType());
    var writer = new StringWriter();

    try
    {
        serializer.Serialize(writer, appointments);
        Console.WriteLine(writer.GetStringBuilder().ToString());
        Console.ReadLine();
    }
    catch (Exception ex) 
    {
        Console.WriteLine(ex);
        Console.ReadLine();
    }

    return writer.GetStringBuilder().ToString();
}

シリアライザーを初期化するときに、例外が発生します。

XML シリアル化可能にするには、IEnumerable から継承する型に、継承階層のすべてのレベルで Add(System.Object) の実装が必要です。

Microsoft.Exchange.WebServices.Data.FindItemsResults は Add(System.Object) を実装していません。

いろいろ調べた結果、パブリックな Add(Object obj) メソッドを追加する必要があるという結論に達しました。今、このメソッドに何を含めるべきか、または呼び出されたときに本当にわからないのですが、誰かが私を正しい方向に向けることができますか? Addメソッドは各予定を手動で追加する必要がありますか?

私が参考になったいくつかのリンク: ここ ここ

とても有難い。

4

3 に答える 3