茅侃侃
要获取以下 XML:<Model xsi:type="SettingsModel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>Test05</Name> <IsActive>false</IsActive> <IsHidden>false</IsHidden></Model>您可以使用以下代码:var model = new { Name = "Test05", IsActive = false, IsHidden = false };var namespaceName = "http://www.w3.org/2001/XMLSchema-instance";XNamespace xsi = XNamespace.Get(namespaceName);var x = new XElement("Model", new XAttribute(xsi + "type", "SettingsModel"), new XAttribute(XNamespace.Xmlns + "xsi", namespaceName), new XElement("Name", model.Name), new XElement("IsActive", model.IsActive), new XElement("IsHidden", model.IsHidden) );Console.WriteLine(x);LINQ to XML 是一种令人沮丧的练习。从长远来看,您可能更喜欢使用带有适当 XML 序列化装饰器的具体类。===编辑===以下是将数据写入 XML 文件的一些附加代码:var settings = new XmlWriterSettings(){ Indent = true, OmitXmlDeclaration = true};using (var stream = new FileStream("Test05.xml", FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))using (var writer = XmlWriter.Create(stream, settings)){ x.WriteTo(writer);}