2016-06-26 13 views
-1

私は単純にxmlファイルをクラスにデシリアライズしようとしています。Xmlデシリアライズ例外

これは私のxmlファイルです:

<DirectoryListener inputDirectory="C:\test\" 
        outputDirectory="C:\keyValueXml\" 
        fileExt=".xml"/> 

そして、これは私のクラスである( "て貼り付け" によって生成された):

public class DirectoryListenConfig 
{ 
    [System.SerializableAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] 
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)] 
    public partial class DirectoryListener 
    { 
     private string inputDirectoryField; 
     private string outputDirectoryField; 
     private string fileExtField; 

     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public string inputDirectory 
     { 
      get 
      { 
       return this.inputDirectoryField; 
      } 
      set 
      { 
       this.inputDirectoryField = value; 
      } 
     } 

     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public string outputDirectory 
     { 
      get 
      { 
       return this.outputDirectoryField; 
      } 
      set 
      { 
       this.outputDirectoryField = value; 
      } 
     } 

     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public string fileExt 
     { 
      get 
      { 
       return this.fileExtField; 
      } 
      set 
      { 
       this.fileExtField = value; 
      } 
     } 
    } 
} 

そして、私はxmlファイルデシリアライズしようとした:

string path = "DirectoryConfig.xml"; 

XmlSerializer serializer = new XmlSerializer(typeof(DirectoryListener)); 

StreamReader reader = new StreamReader(path); 
directoryConfig = (DirectoryListener)serializer.Deserialize(reader);//Throw an exception 

例外があります。

System.Xml.dllで 'System.InvalidOperationException'型の未処理の例外が発生しました。追加情報:XMLドキュメント(2、2)にエラーがあります。

何が問題ですか? :\

ありがとうございます!

答えて

1

この

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Serialization; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string path = @"c:\temp\test.xml"; 

      XmlSerializer serializer = new XmlSerializer(typeof(DirectoryListener)); 

      StreamReader reader = new StreamReader(path); 
      DirectoryListener directoryListener = (DirectoryListener)serializer.Deserialize(reader);//Throw an exception 
     } 
    } 


    [XmlRoot("DirectoryListener")] 
    public partial class DirectoryListener 
    { 
     private string inputDirectoryField; 
     private string outputDirectoryField; 
     private string fileExtField; 

     [XmlAttribute("inputDirectory")] 
     public string inputDirectory {get; set; } 

     [XmlAttribute("outputDirectory")] 
     public string outputDirectory { get; set; } 
     [XmlAttribute("fileExt")] 
     public string fileExt { get; set; } 
    } 


} 
+0

を試してみて、私はまだ例外、感謝ですよ! – Evyatar

+0

上記のコードでテストしたが、例外はありませんでした。例外は何ですか? – jdweng

+0

同じエラー(System.Xml.dllで 'System.InvalidOperationException'型の未処理の例外が発生しました) 追加情報:XML文書(2、2)にエラーがあります) – Evyatar