次のコードがあります。
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
メソッドは各予定を手動で追加する必要がありますか?
とても有難い。