Я храню объекты GData "Event" из Google API в базе данных (хорошо, мне пришлось преобразовать их в объект, иначе они не войдут), и я могу отлично получить доступ ко всем свойствам событий и использовать их для обновления Google, но я не могу сериализовать таблицу данных (или родительский набор данных) в файл, потому что:
Тип «Google.GData.Calendar.EventEntry, Google.GData.Calendar, версия = 1.4.0.2, культура = нейтральная, PublicKeyToken = aa6748391206b888» не реализует интерфейс IXmlSerializable, поэтому не может продолжить сериализацию.
Это происходит независимо от того, пытаюсь ли я просто сериализоваться как XML или двоичный файл, и я не могу найти способ обойти проблему; нельзя ли так или иначе сохранить любую структуру данных в файл?
Чтобы установить контекст, я изначально сохранял GData EventFeed как XML, что заняло около 30 секунд, чтобы выяснить, используя myEventFeed.saveToXML API Google, думая, что я просто перезагружу его позже... Я потратил два дня, пытаясь получить xml обратно в объект EventFeed и теперь вместо этого переключились на сохранение EventEntry из EventFeed в таблицу данных.
Таким образом, мне удалось легко сохранить Feed в XML 1.0, но чтение его обратно в GData EventFeed было другой историей - Google предоставил вам myFeed.saveToXML, но не метод loadfromXML :-/ В итоге я попытался добавить System.Runtime.Serialization использовать что-то вроде:
Dim reader As XmlReader = XmlReader.Create(fileName) Dim rssFeed As SyndicationFeed = SyndicationFeed.Load(reader)
Сначала это выглядело многообещающе, но не все данные находятся в rssFeed, к тому же мне еще нужно вернуть данные в Google.GData.Calendar.EventFeed, прежде чем я смогу вызвать нужные мне методы, а я не могу придумай как это сделать. Я полагаю, можно было бы просто скопировать самые важные биты данных из rssFeed в новые EventEntry или сделать то же самое с таблицей данных, извлекая важные данные... но это будет так неэлегантно и рискованно в будущем.
Любые идеи, каким образом я должен повернуть сейчас? Я лаю не на те деревья?
Спасибо, Нил
ВБ .NET 3.5 VS 2008