public static void Set(IItem item, PropertyDefinition propertyDefinition, Reminders <T> newReminders) { Util.ThrowOnNullArgument(item, "item"); Util.ThrowOnNullArgument(propertyDefinition, "propertyDefinition"); Util.ThrowOnMismatchType <byte[]>(propertyDefinition, "propertyDefinition"); ExTraceGlobals.RemindersTracer.TraceDebug <StoreObjectId, PropertyDefinition>(0L, "Reminders.Set - item={0}, propertyDefinition={1}", item.StoreObjectId, propertyDefinition); if (newReminders == null) { ExTraceGlobals.RemindersTracer.TraceDebug <PropertyDefinition>(0L, "Reminders.Set - Reminder list is null, deleting property={0}", propertyDefinition); item.Delete(propertyDefinition); return; } Reminders <T> .UpdateReminderIdentifiers(newReminders); ExTraceGlobals.RemindersTracer.TraceDebug <int>(0L, "Reminders.Set - Serializing reminders, count={0}", newReminders.ReminderList.Count); using (Stream stream = item.OpenPropertyStream(propertyDefinition, PropertyOpenMode.Create)) { if (newReminders.ReminderList.Count > 0) { IReminder reminder = newReminders.ReminderList[0]; newReminders.Version = reminder.GetCurrentVersion(); } using (XmlWriter xmlWriter = XmlWriter.Create(stream)) { DataContractSerializer dataContractSerializer = new DataContractSerializer(typeof(Reminders <T>)); dataContractSerializer.WriteObject(xmlWriter, newReminders); } } }