문제

RSS 피드를 사용하고 RSSEntry 객체 목록으로 Deserialize하려고합니다.

var Client = new RestClient("url here");
Request = new RestRequest { RequestFormat DataFormat.Xml };
var response = Client.Execute<Channel>(Request);
return response.Data.Item;
.

이것은 CDATA가 포함 된 내용을 제외한 모든 것을 채 웁니다

Channel.cs

 public class Channel
 {
    public string Title { get; set; }
    public string Link { get; set; }
    public string AtomLink { get; set; }
    public string Description { get; set; }
    public DateTime LastBuildDate { get; set; }
    public string Generator { get; set; }
    public string Language { get; set; }
    public string UpdatePeriod { get; set; }
    public int UpdateFrequency { get; set; }
    public RssItems Item { get; set; }
}
.

item.cs

public class Item 
{
        public string Title { get; set; }
        public string Link { get; set; }
        public string Comments { get; set; }
        public DateTime PubDate { get; set; }
        public string Creator { get; set; }
        public string Category { get; set; }
        public string Description { get; set; }
        public string Content { get; set; }
        public string Guid { get; set; }
        public string CommentRss { get; set; }
        public int SlashComments { get; set; }
  }
.

다시는 RESTSHARP가 아닌 다른 것을 사용하기 위해 열려 있습니다.

현재 CDATA가있는 모든 필드가 null로 반환됩니다.

도움이 되었습니까?

해결책

문제는 RSS 피드에서 XML을 읽는 것이었고 항목 클래스 내용의 변수의 이름을 지정했습니다.RSS 피드의 실제 항목 요소는 내용 : 인코딩되었습니다.

이 변수를 인코딩 한 것으로, 완전히 내 자신의 오류가 발생했습니다.

public class Item 
{
        public string Title { get; set; }
        public string Link { get; set; }
        public string Comments { get; set; }
        public DateTime PubDate { get; set; }
        public string Creator { get; set; }
        public string Category { get; set; }
        public string Description { get; set; }
        public string Encoded { get; set; }
        public string Guid { get; set; }
        public string CommentRss { get; set; }
        public int SlashComments { get; set; }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top