Solved

How do you save a Visual Basic dictionary to a file?

Posted on 2013-10-31
8
1,176 Views
Last Modified: 2013-11-02
How does one save a Visual Basic dictionary as a file?

I tried the "tostring" method to convert the dictionary to a string.  That allowed me to save the dictionary to a file, but I do not know how to get it back as there is no "todictionary" method which works with strings as I can tell.

Any thoughts?
0
Comment
Question by:schlaff
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39615785
In the Dictionary what are the data types of the Key and Value entries?
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 39615788
What is being stored in the dictionary?...what type is the key?...what type is the value?
0
 

Author Comment

by:schlaff
ID: 39615815
I am working with three dictionaries -- a dictionary with string keys and string values, a dictionary with string keys and dictionaries as values and a dictionary with string keys and a class as values.
0
Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

 

Author Comment

by:schlaff
ID: 39615820
I know that I could write a routine to save the class keys and values separately and retrieve them in the same fashion.  I was hoping that VB.net provided for a more streamlined method.
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 500 total points
ID: 39616101
The simplest way it to serialize it. You can use either a BinaryFormatter object to have a compact file, or a SoapFormatter to get an XML file.

In order to do that however, all the objects in the collection must be from classes that have been marked with the SerializableAttribute. All the collections and most of the classes in the framework have been built to be serialized, but if you use a custom class, it will need to have the SerializableAttribute in order to work with the formatters.

Otherwise, you end up doing as we did in the old days: loop through the collection, extract the properties of each of the objects, and write them to a file. Do the reverse to recreate the collection,

The formatters will do that for you with 3 lines of code to read and 3 lines of code to write (disregarding the Try...Catch that should usually always be there when handing files). Look at the documentation for the BinaryFormatter, they have a clear example with a HashTable.
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 39618197
One correction to JamesBurger's answer:  You cannot serialize generic types (which a Dictionary is) via the SoapFormatter. On top of that, it has been deprecated, so it could possibly be removed in an update to the Framework (but it hasn't happened yet, so who knows). You should be able to use the BinaryFormatter without incident.
0
 
LVL 40
ID: 39618833
The SoapFormatter was deprecated in .NET 2.0 in 2005. But it is still living 8 years later, and in framework 4.5, we do not get any warning that it is deprecated when using it, nor is the documentation stating that it is.

I thus suspect that they dropped their decision of eventually scrapping it. I cannot find any official reference from Microsoft that states that it is deprecated anymore. However, because old stuff does not die easily on the Internet, you still see programmers everywhere repeating that it is deprecated.

I use the BinaryFormatter for most of my work and was not aware that the SoapFormatter was having problems with generics. Thanks for pointing that out kaufmed.
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 39619228
From http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.soap.soapformatter.aspx:

Beginning with the .NET Framework 2.0, this class is obsolete. Use BinaryFormatter instead.
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Kraeven
Introduction Remote Share is a simple remote sharing tool, enabling you to see, add and remove remote or local shares. The application is written in VB.NET targeting the .NET framework 2.0. The source code and the compiled programs have been in…
A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question