Как записать объект словаря (коллекции) в файл (VB .Net 2010)

Я пытаюсь записать коллекцию словарей в файл.

Сборник устроен так:

GlobalCollection    (Collection of TestCollection)
    (0)
    [KEY]
    [Value]
    - TotalGlobal_W_Count    (Integer)
    - TotalGlobal_I_Count    (Integer)
    - TotalGlobal_F_Count    (Integer)
    TestCollection    (Dictionary - Key, Value)
        (0)
        [KEY]
        [Value]
        - NumberOfTests        (Integer)
        - TestCollectionName    (String)
        - TypesOfTests        (ArrayList)
        ResultsCollection    (Dictionary - Key, Value)
            (0)
            [KEY]
            [Value]
            - TotalFcount    (Integer)
            - TotalIcount    (Integer)
            - TotalWcount    (Integer)
            - ID        (String)
            - TestFolderType(String)
            - TestPassed    (Boolean)
            - FullLog    (Array)
            ResultsCollection    (Dictionary - Key, Value)
                (0)
                [KEY]
                [Value]
                - LineNumber    (Integer)
                - MessageType    (String)
                - ResultString    (String)

Я хотел бы записать все вышеуказанные переменные в текстовый файл, сохранив при этом форматирование иерархии. (Обратите внимание, что в каждом объекте коллекции может быть несколько элементов)

Спасибо!!!


person Destroyer    schedule 04.05.2012    source источник
comment
Вы изучали сериализацию XML? Ознакомьтесь с классом XmlSerializer. msdn.microsoft.com/en-us/library/   -  person George Johnston    schedule 05.05.2012


Ответы (2)


Сериализуйте его в Xml. Вот вопрос StackOverflow, который отвечает на тему. Особенно хорошо читать ссылку @John Saunders в комментариях.

person Joel Etherton    schedule 04.05.2012

быстрее и меньше, чем xml, если вы не планируете анализировать/... сериализованный файл, используйте BinaryFormater :

Dim MyFormatter As New BinaryFormatter()
Dim MyFile As New FileStream("Serialized.ser", FileMode.Create, FileAccess.Write, FileShare.None)
MyFormatter.Serialize(MyFile, TheObjectIWantToSerialize)
MyFile.Close()
person GameAlchemist    schedule 05.05.2012
comment
Спасибо за вышесказанное, к сожалению, нам нужно форматирование ... но отличный ответ. - person Destroyer; 08.05.2012
comment
Да, действительно, GameAlchemist, бинарник очень быстрый. (я выбрал двоичный файл для большой работы, так как xml был вариантом, и я узнал, что если вам нужна скорость, двоичный файл быстрее) - person ; 15.02.2015