C# 反序列化XML元素返回NULL

C# 反序列化XML元素返回NULL,c#,xml-serialization,C#,Xml Serialization,我正在尝试反序列化一个XML文件。但是,我只需要文件中的两个元素。以下是基本标记: 我想要这里的东西。 这里也是。 要反序列化,我将执行以下操作: XmlSerializer反序列化程序; FileStream=newfilestream(配置路径,FileMode.Open); XmlReader=新的XmlTextReader(流); xRoot=新的XmlRootAttribute(); xRoot.ElementName=“Stuff”; xRoot.IsNullable=true;

我正在尝试反序列化一个XML文件。但是,我只需要文件中的两个元素。以下是基本标记:


我想要这里的东西。
这里也是。
要反序列化,我将执行以下操作:

XmlSerializer反序列化程序;
FileStream=newfilestream(配置路径,FileMode.Open);
XmlReader=新的XmlTextReader(流);
xRoot=新的XmlRootAttribute();
xRoot.ElementName=“Stuff”;
xRoot.IsNullable=true;
//详细信息配置区域。
Utilities.Details d=新的Utilities.Details();
反序列化器=新的XmlSerializer((typeof(Details)),xRoot);
d=(详细信息)反序列化器。反序列化(读取器);
System.Windows.MessageBox.Show(d.Comment);
最后是保存对象的类:

/// <summary>
/// Configuration details.
/// </summary>
[Serializable()]
[XmlRoot(ElementName = "Details", IsNullable = true)]
public sealed class Details
{
    public Details()
    {

    }

    [XmlElement("Comment")]
    public string Comment { get; set; }

    [XmlElement("LogLevel")]
    public string LogLevel { get; set; }
}
//
///配置详细信息。
/// 
[可序列化()]
[XmlRoot(ElementName=“Details”,IsNullable=true)]
公开密封类详细信息
{
公开资料()
{
}
[XmlElement(“注释”)]
公共字符串注释{get;set;}
[XmlElement(“日志级别”)]
公共字符串日志级别{get;set;}
}

然而,无论我做什么,d.Comment和d.LogLevel都会继续返回null。有什么想法吗?

它希望通过这种设置

<Stuff>
  <Comment>....
  <LogLevel>...
  ...

另一种方法是在输入上使用子读取器,但这更难。

我在尝试使用XmlSerializer和FileStreams时遇到了许多类似的问题

我建议将它改为Linq到XML。我发现学习起来容易多了,也快多了

这里是一个伟大的视频迈克陶尔蒂

public class Stuff {
    public Details Details {get;set;}
}