2010-04-04 7 views
1

Je veux sérialiser un objet dans un fichier XML et je veux le nom du fichier xml à être aléatoire comme suitXML sérialiseur nom

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

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

Je suis juste curieux de savoir comment faire une telle chose?

Répondre

3

Voici un exemple avec une classe d'échantillons.

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

@Matt: vous downvotant pour plusieurs raisons: 1) Le sérialiseur XML ignore l'attribut 'Serializable'. 2) 'new XmlTextWriter()' est obsolète à partir de .NET 2.0. Utilisez 'XmlWriter.Create()' à la place. 3) Est-ce que le PO a dit _anything_ sur le codage ASCII? –

+0

@John J'ai mis à jour ma réponse pour refléter vos commentaires. Je n'étais pas au courant de XmlWriter.Create(). Je vais m'assurer de l'utiliser à partir de maintenant. Merci pour le commentaire. –

+0

Je vais inverser le downvote, mais je vous suggère d'utiliser 'XmlWriter.Create' et non' XmlTextWriter.Create'. –

2

Regardez System.Guid.

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

Bonne description de sérialisation avec une encapsulation se trouve here Le nom semble être un Guid, donc il suffit de créer un nouveau guid, le convertir en texte et l'utiliser comme nom de fichier.

+0

@Development: Je vous ai presque mis en minorité. Le PO n'a pas demandé comment faire la sérialisation, seulement comment obtenir les noms de fichiers comme il l'aimait. –

2
var fileName = String.Format("{0}.xml", System.Guid.NewGuid().ToString()); 
Questions connexes