我想將對象序列爲XML,我想的XML文件的文件名是隨機如下XML串行化器的文件名
636211ad-ef28-47b9-aa60-207d3fbb9580.xml
fc3b491e5 -59ac-4f6a-81e5-27e971b903ed.xml
我只是好奇如何做這樣的事情?
我想將對象序列爲XML,我想的XML文件的文件名是隨機如下XML串行化器的文件名
636211ad-ef28-47b9-aa60-207d3fbb9580.xml
fc3b491e5 -59ac-4f6a-81e5-27e971b903ed.xml
我只是好奇如何做這樣的事情?
下面是一個示例類示例。
public class TestSerialize
{
public string Test1;
public int Test2;
}
class Program
{
[STAThread]
static void Main()
{
var serializer = new XmlSerializer(typeof(TestSerialize));
using (XmlWriter writer = XmlWriter.Create(Guid.NewGuid() + ".xml"))
{
serializer.Serialize(writer, new TestSerialize() { Test1 = "hello", Test2 = 5 });
}
Console.ReadLine();
}
}
看看System.Guid。
Guid guid = System.Guid.NewGuid();
有些系列化封裝的很好的說明可以發現here 的名字似乎是一個GUID,因此只需要創建一個新的GUID,將其轉換爲文本 和使用,作爲文件名。
@開發:我差點壓低了你。操作系統並沒有要求如何進行序列化,只是如何以他喜歡的方式獲取文件名。 – 2010-04-04 02:13:29
var fileName = String.Format("{0}.xml", System.Guid.NewGuid().ToString());
@Matt:由於以下幾個原因而降低投票率:1)XML序列化器忽略「Serializable」屬性。 2)從.NET 2.0開始,不推薦使用'new XmlTextWriter()'。改爲使用'XmlWriter.Create()'。 3)OP是否說過關於ASCII編碼的東西? – 2010-04-04 02:12:27
@John我更新了我的答案以反映您的意見。我不知道XmlWriter.Create()。我將確保從現在開始使用它。感謝您的評論。 – 2010-04-04 03:22:57
我會逆轉downvote,但我建議你使用'XmlWriter.Create'而不是'XmlTextWriter.Create'。 – 2010-04-04 04:50:14