【发布时间】:2011-02-22 11:09:35
【问题描述】:
我正在尝试从 C# 中的类型生成 XML 输出。我正在使用 MvcContrib XmlResult 类,我在下面提供了一个链接。
作为一个简单的测试,看看我是否可以让它工作,我正在使用以下代码:
var topTen = new TopTen
{
PerformanceTo = DateTime.Now,
ShareClasses = new List<TopTenShareClass>()
{
new TopTenShareClass{Id = 1, Name = "a"},
new TopTenShareClass{Id = 2, Name = "b"},
new TopTenShareClass{Id = 3, Name = "c"}
}
};
return new XmlResult(topTen);
(其中 2 种类型定义为:)
public class TopTen
{
public DateTime PerformanceTo { get; set; }
public List<TopTenShareClass> ShareClasses { get; set; }
}
public class TopTenShareClass
{
public int Id { get; set; }
public string Name { get; set; }
}
生成此输出 XML
<?xml version="1.0" encoding="utf-8"?>
<TopTen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PerformanceTo>2011-02-22T10:56:41.3094548+00:00</PerformanceTo>
<ShareClasses>
<TopTenShareClass>
<Id>1</Id>
<Name>a</Name>
</TopTenShareClass>
<TopTenShareClass>
<Id>2</Id>
<Name>b</Name>
</TopTenShareClass>
<TopTenShareClass>
<Id>3</Id>
<Name>c</Name>
</TopTenShareClass>
</ShareClasses>
</TopTen>
我想知道是否可以让 ID 和名称标签显示为 TopTenShareClass 节点中的属性,而不是节点本身?理想情况下,XML 应该是:
<?xml version="1.0" encoding="utf-8"?>
<TopTen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PerformanceTo>2011-02-22T10:56:41.3094548+00:00</PerformanceTo>
<ShareClasses>
<TopTenShareClass Id=1 Name='a'></TopTenShareClass>
<TopTenShareClass Id=2 Name='b'></TopTenShareClass>
<TopTenShareClass Id=3 Name='c'></TopTenShareClass>
</ShareClasses>
</TopTen>
作为参考,XmlResult 定义可在此处获得:http://mvccontrib.codeplex.com/SourceControl/changeset/view/5f542a2e51e9#src%2fMVCContrib%2fActionResults%2fXmlResult.cs
【问题讨论】:
标签: c# asp.net-mvc xml xml-serialization mvccontrib