visual studio samples developing bootstrap arma apps c# uwp

c# - studio - XmlReader se declara en un ensamblado diferente aunque se hace referencia a System.Xml?



uwp vs wpf (1)

Soy un estudiante que estudia Ingeniería Informática en la Universidad, y estoy tratando de desarrollar una aplicación que lea un RSS desde una URL determinada, luego mostrar los títulos y enlaces de cada elemento en la fuente como una notificación cada vez que se alimenta de la URL. url está actualizado. Bueno, en realidad estoy en el comienzo, y estoy trabajando en este proyecto con fines de aprendizaje, siguiendo algunos tutoriales, etc.

Mi plan era usar la biblioteca System.ServiceModel.Syndication para leer el feed rss desde la url usando el objeto SyndicationFeed y sus métodos. Pero cada vez que trato de usarlo obtengo un extraño error. El error es el siguiente

--- CS0012: el tipo ''XmlReader'' se define en un ensamblaje al que no se hace referencia. Debe agregar una referencia al ensamblado ''System.Xml, Version = 5.0.5.0'', Culture = neutral, PublicKeyToken = ''7cec85d7bea7798e''.

Aquí está la parte del código que muestra este error:

public void GetFeed() { // Create an xml reader that will read rss data from the given url var xmlReader = XmlReader.Create(rssUrl); syndicationFeed = SyndicationFeed.Load(xmlReader); }

La parte donde creo el xmlReader no tiene errores, también tengo el siguiente ensamblado al que se hace referencia, ''System.Xml''.

using System.Text; using System.Threading.Tasks; using System.ServiceModel.Syndication; using System.Xml; // Here is the System.Xml

Además, intentar agregar una referencia a dicha biblioteca (System.Xml) haciendo clic con el botón derecho y seleccionando ''Agregar referencia'' solo me da otro error, diciéndome que no puedo hacer referencia a ''System.Xml'' porque ya está siendo referenciado por el sistema de construcción.

Traté de usar otras clases del espacio de nombres System.ServiceModel.Syndication para asegurarme de que el problema no esté en el ensamblado, y cualquier otra clase, método, etc. funcionó sin errores. Por ejemplo, puedo escribir esto y no obtener ningún error:

SyndicationItem item = new SyndicationItem(); item.Title = new TextSyndicationContent("Me"); item.Links.Add(new SyndicationLink() { Uri = new Uri("http://somesite.con") }); item.PublishDate = DateTime.Now;

No recibo errores en el fragmento de código anterior. No obtengo errores cuando uso XmlReader como este, por ejemplo:

var reader = XmlReader.Create(rssUrl); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Attribute: // Some code here break; // Some more cases here...... } }

Aquí tampoco consigo errores sobre el XmlReader. Solo recibo el error al pasar una instancia de XmlReader a un método SyndicationFeed.Load (instancia XmlReader).

// This always gives me error!!! syndicationFeed = SyndicationFeed.Load(xmlReader);

He estado tratando de resolver este problema durante bastante tiempo, casi 6 horas, busqué en la web, hice referencia a diferentes versiones de System.ServiceModel.Syndication.dll, tratando de encontrar paquetes de sindicación en el administrador de paquetes Nuget. Nada funcionó. Hago esta pregunta aquí como último recurso, y cualquier ayuda sería muy apreciada.


Las aplicaciones UWP usan la clase Windows Runtime Windows.Web.Syndication.SyndicationFeed en lugar de .Net System.ServiceModel.Syndication.

Windows.Web.Syndication.SyndicationFeed no tiene un constructor de XmlReader. En general, creará un SyndicationClient y luego llamará a RetrieveFeedAsync(url) para obtener SyndicationFeed.

Consulte Cómo acceder a una fuente web (XAML) para obtener una guía completa.