Google Picasa API XML deserialization - follow up
Im trying to write a class to deserialize the picasa album feed. It has been pretty good so far, got some help to get started (here) and I'm almost there. I have a problem with two fields right now.
The gphoto:bytesUsed and gphoto:numphotosremaining want deserialize. I can't find anything wrong with it. Thankfull for any suggestions.
Url to feed: https://picasaweb.google.com/data/feed/api/user/{username}
Class code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace WindowsFormsApplication4
{
[XmlType("feed", Namespace = "http://www.w3.org/2005/Atom")]
[XmlRoot("feed", Namespace = "http://www.w3.org/2005/Atom")]
public class picasa
{
[XmlAttribute]
public string id { get; set; }
[XmlAttribute]
public string title { get; set; }
[XmlAttribute]
public string icon { get; set; }
[XmlElement("link")]
public FeedLink[] links { get; set; }
[XmlElement("generator")]
public FeedGenerator generator { get;开发者_C百科 set; }
[XmlElement("author")]
public FeedAuthor author { get; set; }
[XmlElement(Namespace = "http://a9.com/-/spec/opensearch/1.1/")]
public int totalResults { get; set; }
[XmlElement("entry")]
public FeedEntry[] entries { get; set; }
[XmlType("entry", Namespace = "http://www.w3.org/2005/Atom")]
public partial class FeedEntry
{
[XmlElement]
public string id { get; set; }
[XmlElement]
public FeedCategory category { get; set; }
[XmlElement]
public string title { get; set; }
[XmlElement]
public string summary { get; set; }
[XmlElement]
public string rights { get; set; }
[XmlElement("link")]
public FeedLink[] links { get; set; }
[XmlElement("author")]
public FeedAuthor author { get; set; }
[XmlElement(ElementName = "id", Namespace = "http://schemas.google.com/photos/2007")]
public string gid { get; set; }
[XmlElement(ElementName = "name", Namespace = "http://schemas.google.com/photos/2007")]
public string gname { get; set; }
[XmlElement(ElementName = "location", Namespace = "http://schemas.google.com/photos/2007")]
public string glocation { get; set; }
[XmlElement(ElementName = "access", Namespace = "http://schemas.google.com/photos/2007")]
public string gaccess { get; set; }
[XmlElement(ElementName = "timestamp", Namespace = "http://schemas.google.com/photos/2007")]
public string gtimestamp { get; set; }
[XmlElement(ElementName = "numphotos", Namespace = "http://schemas.google.com/photos/2007")]
public int gnumphotos { get; set; }
[XmlElement(ElementName = "numphotosremaining", Namespace = "http://schemas.google.com/photos/2007")]
public int gnumphotosremaining { get; set; }
[XmlElement(ElementName = "bytesUsed", Namespace = "http://schemas.google.com/photos/2007")]
public int gbytesUsed { get; set; }
[XmlElement(ElementName = "user", Namespace = "http://schemas.google.com/photos/2007")]
public string guser { get; set; }
[XmlElement(ElementName = "nickname", Namespace = "http://schemas.google.com/photos/2007")]
public string gnickname { get; set; }
[XmlElement(ElementName = "commentingEnabled", Namespace = "http://schemas.google.com/photos/2007")]
public string gcommentingEnabled { get; set; }
[XmlElement(ElementName = "commentCount", Namespace = "http://schemas.google.com/photos/2007")]
public int gcommentCount { get; set; }
[XmlElement(ElementName = "group", Namespace = "http://search.yahoo.com/mrss/")]
public MediaGroup mgroup { get; set; }
}
#region XML types
[XmlType("author", Namespace = "http://www.w3.org/2005/Atom")]
public partial class FeedAuthor
{
[XmlElement(ElementName = "name", Namespace = "http://www.w3.org/2005/Atom")]
public string name { get; set; }
[XmlElement(ElementName = "uri", Namespace = "http://www.w3.org/2005/Atom")]
public string uri { get; set; }
}
[XmlType("category", Namespace = "http://www.w3.org/2005/Atom")]
public partial class FeedCategory
{
[XmlAttribute(AttributeName = "scheme", Namespace = "http://www.w3.org/2005/Atom")]
public string scheme { get; set; }
[XmlAttribute(AttributeName = "term", Namespace = "http://www.w3.org/2005/Atom")]
public string term { get; set; }
}
[XmlType("link", Namespace = "http://www.w3.org/2005/Atom")]
public partial class FeedLink
{
[XmlAttribute(AttributeName = "rel", Namespace = "http://www.w3.org/2005/Atom")]
public string rel { get; set; }
[XmlAttribute(AttributeName = "type", Namespace = "http://www.w3.org/2005/Atom")]
public string type { get; set; }
[XmlAttribute(AttributeName = "href", Namespace = "http://www.w3.org/2005/Atom")]
public string href { get; set; }
}
[XmlType("generator", Namespace = "http://www.w3.org/2005/Atom")]
public partial class FeedGenerator
{
[XmlAttribute(AttributeName = "version", Namespace = "http://www.w3.org/2005/Atom")]
public string version { get; set; }
[XmlAttribute(AttributeName = "uri", Namespace = "http://www.w3.org/2005/Atom")]
public string uri { get; set; }
[XmlText]
public string text { get; set; }
}
[XmlType("group", Namespace = "http://search.yahoo.com/mrss/")]
public partial class MediaGroup
{
[XmlElement(ElementName = "content", Namespace = "http://search.yahoo.com/mrss/")]
public MediaContent mgcontent { get; set; }
[XmlElement(ElementName = "credit", Namespace = "http://search.yahoo.com/mrss/")]
public string mgcredit { get; set; }
[XmlElement(ElementName = "description", Namespace = "http://search.yahoo.com/mrss/")]
public MediaDescription mgdescription { get; set; }
}
[XmlType("content", Namespace = "http://search.yahoo.com/mrss/")]
public partial class MediaContent
{
[XmlAttribute(AttributeName = "url", Namespace = "http://search.yahoo.com/mrss/")]
public string url { get; set; }
[XmlAttribute(AttributeName = "type", Namespace = "http://search.yahoo.com/mrss/")]
public string type { get; set; }
[XmlAttribute(AttributeName = "medium", Namespace = "http://search.yahoo.com/mrss/")]
public string medium { get; set; }
}
[XmlType("description", Namespace = "http://search.yahoo.com/mrss/")]
public partial class MediaDescription
{
[XmlAttribute("type", Namespace="http://search.yahoo.com/mrss/")]
public string type {get;set;}
[XmlText]
public string description { get; set; }
}
#endregion
}
}
Your solution could be dramatically simplified making use of the .NET library for the Google Data API. Plus here is a tutorial that you might find interesting: Creating your first Picasa Web C# Application.
精彩评论