如何将 DataTable 的内容保存到 XML 文件以存储在我的 Web API 项目的 App_Data 文件夹中?

How can I save the contents of a DataTable to an XML file to be stored within my Web API project's App_Data folder?

我不想将 .XML 文件存储到硬盘上的某个位置(我需要关心);我希望它存储在项目的 App_Data 文件夹下。

我需要大量这样的名称,这些名称将在运行时计算,例如“gramps_minority_201509.xml”、“hijomio_carta_20151101_20151205.xml”等

我想将 DataTables 的内容保存到这些 XML 文件中,稍后在呈现页面时从中读取(XML 文件内容将填充页面上的网格)。

XML 文件可以在设计时添加到 App_Data 文件夹,方法是选择 添加 -> 新项目... -> Visual C# -> 数据 从 App_Data 文件夹上下文菜单,然后从那里的列表中选择“XML 文件”。

但是,此时您为 XML 文件提供了一个名称;如前所述,我需要命名这些 "on the fly",最终会有成千上万个。

那么如何在代码中创建这些 XML 文件,将 DataTables 的内容保存到其中?

更新

或者保存到 .json 会更好...

我强烈建议您使用 JSON 而不是 XML。使用 JSON 有很多众所周知的好处,我相信您也知道。所以我会跳过那个。

要实现你想要的,你可以使用JSON.NET很容易地将你的DataTable序列化为JSON字符串

public void Get()
{
    string jsonString = JsonConvert.SerializeObject(datatable, Formatting.Indented);

    string path = HttpContext.Current.Server.MapPath("~/App_Data/");

    //Generate a filename with your logic..
    string fileName = string.Concat(Guid.NewGuid().ToString(), ".json");

    //Create the full Path
    string fullPath = System.IO.Path.Combine(path, fileName);

    //Create the json file
    System.IO.File.WriteAllText(fullPath, jsonString);
}