2012-07-01 48 views
0

我使用Visual Studio工具(現在的Win 7 SDK Tools)中的XSD.Exe從xml文件創建了一個.xsd。 我.xsd文件:「System.InvalidOperationException」 - xsd XSD2Code樣式表XML C#Visual Studio

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="SceneFile" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
<xs:element name="Scene"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="VNESceneName" type="xs:string" minOccurs="0" maxOccurs="1"/> 
    <xs:element name="VNEPlayerName" type="xs:string" minOccurs="0" maxOccurs="1"/> 
    <xs:element name="VNEButtons" minOccurs="0" maxOccurs="1"> 

(板缺sicne它太長) 然後我用XSD2Code(一種用於VS外接)創建了.Designer.cs文件:

namespace VNEngine 
{ 
using System; 
using System.Diagnostics; 
using System.Xml.Serialization; 
using System.Collections; 
using System.Xml.Schema; 
using System.ComponentModel; 
using System.IO; 
using System.Text; 
using System.Collections.Generic; 


public partial class Scene 
{ 

    private string vNESceneNameField; 
    private string vNEPlayerNameField; 
    private List<SceneVNEButton> vNEButtonsField; 
    private SceneVNETextBox vNETextBoxField; 
    private SceneVNEBackground vNEBackgroundField; 
    private List<SceneVNESprite> vNESpritesField; 
    private SceneVNEMusic vNEMusicField; 
    private static System.Xml.Serialization.XmlSerializer serializer; 

    public Scene() 
    { 
     this.vNEMusicField = new SceneVNEMusic(); 
     this.vNESpritesField = new List<SceneVNESprite>(); 
     this.vNEBackgroundField = new SceneVNEBackground(); 
     this.vNETextBoxField = new SceneVNETextBox(); 
     this.vNEButtonsField = new List<SceneVNEButton>(); 
    } 

    public string VNESceneName 
    { 
     get 
     { 
      return this.vNESceneNameField; 
     } 
     set 
     { 
      this.vNESceneNameField = value; 
     } 
    } 

(板缺sicne它太長)

現在我想創建一個「場景」(根XML標籤)在我的C#代碼:

  Scene testscene = new Scene(); 
      testscene.VNEPlayerName = "hallo"; 

所有到這一點的工作,但是當我想保存或序列化(或反序列化)是這樣的:

  testscene.SaveToFile(@"Content/Scenes/testscene.xml"); 

現在在執行我得到在該行的錯誤(SceneFiles.designer.cs )

private static System.Xml.Serialization.XmlSerializer Serializer 
    { 
     get 
     { 
      if((serializer == null)) 
      { 
     ---> serializer = new System.Xml.Serialization.XmlSerializer(typeof(Scene)); 
      } 
      return serializer; 
     } 
    } 

我的錯誤是這樣的:

//

EINE nicht behandelte Ausnahm e des Typs System.Xml.dll aufgetreten中的「System.InvalidOperationException」ist。

創建信息:Fehler beim Reflektieren des Typs 'VNEngine.Scene'。

//

我粗略英譯:

一個沒有處理異常:System.InvalidOperationException出現在 system.xml.dll的其它信息:錯誤的反射類型 'VNEngine.Scene'

//

有誰知道我做了什麼錯?

同樣的事情可以使用小而不是複雜的,而不是與xsd.exe generatet .xsd樣式表一起使用。

回答

0

好吧,我發現它,XSD2Code確實有一個選項GenerateXMLAttributes需要設置爲true。