Es ist ein Fehler in XML-Dokument (2, 2).Was bedeutet das?
Ich versuche zu Lesen XML-Dokument.
Meine XML:
<?xml version="1.0" encoding="utf-8"?>
<SplashScreen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Path>SplashScreen/Image-King</Path>
</SplashScreen>
Meinen code Lesen von XML:
XmlGameScreen = new XmlManager<GameScreen>();
XmlGameScreen.Type = currentscreen.Type;
currentscreen = XmlGameScreen.Load("LoadXML/SplashScreen.xml");
Und
public Type Type;
public T Load(string path)
{
T instance;
using (TextReader textreader = new StreamReader(path))
{
XmlSerializer xml = new XmlSerializer(Type);
instance = (T)xml.Deserialize(textreader);
}
return instance;
}
Bin ich immer Fehler auf instance = (T)xml.Deserialize(textreader);
Ist mein XML-Dokument falsch? Ich bin versucht zu Lesen <Path>
.
Update :
Meine Innere Ausnahme:
Nicht serialisieren Mitglied 'MyRPGgame.SplashScreen._image'
Typ 'Microsoft.Xna.Framework.Graphics.Texture2D'
Ich denke, (2, 2) bedeutet, dass der Fehler in Zeile 2, Spalte 2. Aber das XML-Dokument aussieht, OK. Sind Sie sicher, dass Sie nicht be-etwas anderes?
Nicht nur das xml-Dokument...
Fügen Sie eine Zeile code (textreader.ReadToEnd ()), um die Ausgabe der text-Leser in einen string und verwenden Sie den debugger, um es zu untersuchen. (Als sanity-check).
Problem ist, Ihr die Instanziierung einer
ja SplashScreen ist eine Unterklasse von GameScreen
Nicht nur das xml-Dokument...
Fügen Sie eine Zeile code (textreader.ReadToEnd ()), um die Ausgabe der text-Leser in einen string und verwenden Sie den debugger, um es zu untersuchen. (Als sanity-check).
Problem ist, Ihr die Instanziierung einer
XmlManager
Typ GameScreen
aber versuchen, laden Sie eine XML-Datei mit dem Typ SplashScreen
. Vielleicht. Ich bin mir nicht sicher, weil ich nicht verstehen den semantischen Unterschied zwischen T
und Type
im code. Vielleicht zeigt die zwei zusätzlichen Arten wären hilfreich. Dieser code funktioniert für mich, wenn SplashScreen
ist eine Unterklasse von GameScreen
.ja SplashScreen ist eine Unterklasse von GameScreen
InformationsquelleAutor Losser Bad | 2015-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Erfahrung, es wäre, dass in der 2. Zeile in der 2. chararacter, es ist ein Fehler.
schauen Sie, ob Ihre Klasse Namen Verschieden sind von den XML-tags. sind Sie vielleicht eine änderung der "XML-Root-name" auf ein anderes ein.
Haben Sie einen Blick auf die XML-Struktur und die Klasse, die Sie serialisieren der Knoten.
Lesen Sie außerdem die
MSDN-Dokumentation über die XmlRootAttribute Klasse.
InformationsquelleAutor user853710
In meinem Fall scheint es eines der Visual Studio-2017 version 15.5-updates diesen Fehler verursacht, wenn Sie versuchen zu öffnen, die von SSRS-Projekte. Die Lösung ist das löschen der *.rptproj.rsuser-Datei aus dem Projekt Ordner und versuchen Sie es erneut.
*.suo
DateienIch habe keine rsuser-Datei für das Projekt kommen von TFS. Also ich habe einen neuen SSRS-Projekt, fand die Unterschiede in der it-vs das Projekt, das ich nicht öffnen konnte (die waren einfach XML-namespaces), das Projekt geändert, die ich nicht öffnen konnte, und öffnete dann das Projekt.
Diese lösen meines Problems beim laden. Dank user875318.
Ich habe versucht, löschen Sie einige Dateien, wie diese Antwort deuten. Ein workaround, das funktioniert für mich, war die Schaffung einer neuen SSRS-Projekt, fügen Sie dann alle existierenden Elemente.
Ich löschte beide *.rptproj.ruser und *.rptproj.Benutzer, und diese behoben das Problem für mich. Ich hatte das gleiche Problem wie @user875318, zu öffnen versuchen, einen SSRS-Lösung in Visual Studio 2017 version 15.5.7.
InformationsquelleAutor user875318
Dass in der Regel bedeutet, dass Sie Leerzeichen am Beginn der Datei; überprüfen, ob ein Zeilenumbruch vor der
<?xml...
. Noch besser: zeigen Sie die ersten paar bytes (vorzugsweise soweit<SplashScreen
) der Datei als eine Anzeige in einem Binär-editor.Es könnte auch bedeuten, Sie haben ein unsichtbares unicode-oder steuerzeichen irgendwo vor der
<SplashScreen
aber... sln-Dateien nicht xml... ?
guter Punkt, ich weiß es nicht, es nur für mich gearbeitet.
InformationsquelleAutor Marc Gravell