今日我们学习怎么样把List<T>写成一个XML文件保存起来。因为我们在举行动态网站开发时,需要对一些非太经常变化的数目有也XML文件,让程序直接去读取,而无是每次是SQL数据库取。
为缓解一个题材,我们得需要先创造一个自定义的Result()在ASP.NET
MVC中。这个Result操作可以继承ActionResult或者ContentResult。
代码:
class XmlResult<T> : ActionResult
{
public T Data { private get; set; }
public string FilePhysicalPath { private get; set; }
public override void ExecuteResult(ControllerContext context)
{
XmlSerializer xml = new XmlSerializer(typeof(T));
using (StreamWriter writer = new StreamWriter(FilePhysicalPath))
{
xml.Serialize(writer, Data);
}
}
}
View Code
创建Model:
创建一个Entity,是数的成团:
code source:
public class NumberEntity
{
public List<Number> Numbers()
{
return new List<Number>(){
new Number() { Num = 20 },
new Number() { Num = 40 },
new Number() { Num = 60 },
new Number() { Num = 80 }
};
}
}
View Code
联网下去,创建控制器
code source:
public ActionResult XmlDemo()
{
return View();
}
public ActionResult ConvertListSaveFile()
{
NumberEntity ne = new NumberEntity();
string fileName = Guid.NewGuid().ToString() + ".xml";
string filephysicalPath = Server.MapPath("~/Temp/") + fileName;
return new XmlResult<List<Number>>()
{
Data = ne.Numbers(),
FilePhysicalPath = filephysicalPath
};
}
View Code
完成视图,简单:
效果演示: