C# XML序列化程序文件名

C# XML序列化程序文件名,c#,.net,xml-serialization,C#,.net,Xml Serialization,我想将一个对象序列化为xml,并希望xml的文件名是随机的,如下所示 636211ad-ef28-47b9-aa60-207d3fbb9580.xml fc3b491e5-59ac-4f6a-81e5-27e971b903ed.xml 我只是好奇如何做这样的事情?看看System.Guid Guid guid = System.Guid.NewGuid(); 看看System.Guid Guid guid = System.Guid.NewGuid(); 可以找到一些封装的序列化的良好描述

我想将一个对象序列化为xml,并希望xml的文件名是随机的,如下所示

636211ad-ef28-47b9-aa60-207d3fbb9580.xml

fc3b491e5-59ac-4f6a-81e5-27e971b903ed.xml

我只是好奇如何做这样的事情?

看看System.Guid

Guid guid = System.Guid.NewGuid();
看看System.Guid

Guid guid = System.Guid.NewGuid();

可以找到一些封装的序列化的良好描述 名称似乎是一个Guid,所以只需创建一个新的Guid,将其转换为文本
并将其用作文件名。

可以找到带有一些封装的序列化的良好描述
var fileName = String.Format("{0}.xml", System.Guid.NewGuid().ToString());
名称似乎是一个Guid,所以只需创建一个新的Guid,将其转换为文本
并将其用作文件名。

下面是一个示例类

var fileName = String.Format("{0}.xml", System.Guid.NewGuid().ToString());
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();
    }
}

下面是一个示例类

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();
    }
}

@马特:投票否决你有几个原因:1)XML序列化程序忽略了
Serializable
属性。2) 从.NET 2.0开始,新的XmlTextWriter()已被弃用。改用
XmlWriter.Create()
。3) OP提到ASCII编码了吗?@John我更新了我的答案以反映你的评论。我不知道XmlWriter.Create()。从现在起我一定要用它。谢谢您的评论。我将取消否决票,但我建议您使用
XmlWriter.Create
而不是
XmlTextWriter.Create
@Matt:downvoting,原因如下:1)XML序列化程序忽略
Serializable
属性。2) 从.NET 2.0开始,新的XmlTextWriter()已被弃用。改用
XmlWriter.Create()
。3) OP提到ASCII编码了吗?@John我更新了我的答案以反映你的评论。我不知道XmlWriter.Create()。从现在起我一定要用它。谢谢你的评论。我将撤销否决票,但我建议你使用
XmlWriter.Create
而不是
XmlTextWriter.Create
@Development:我几乎否决了你。OP没有问如何进行序列化,只问如何以他喜欢的方式获得文件名。@Development:我几乎否决了你。OP没有问如何进行序列化,只问如何以他喜欢的方式获取文件名。