I want to use ListBox1.SaveToFile method in .NET, but I can't find anything equivalent to that method. I have searched on MSDN library site and I came empty handed. Is there a equivalent method in .NET?
Thanks in advance,
Awesome question. You can create your own mega cool method!
public static class ListBoxExtensions
{
public static IEnumerable<TData> GetData<TData>(this ListBox listbox)
{
var data = new List<TData>();
foreach (var item in listbox.Items)
{
data.Add((TData) item);
}
return data;
}
public static void SetData<TData>(this ListBox listbox, IEnumerable<TData> dataToSet)
{
listbox.Items.Clear();
foreach (var item in dataToSet)
{
listbox.Items.Add(item);
}
}
}
public static class SerializerHelper
{
public static void Save<TXmlSerializableData>(IEnumerable<TXmlSerializableData> data, string outputFile)
where TXmlSerializableData : class
{
if (File.Exists(outputFile))
{
File.Delete(outputFile);
}
var serializer = new XmlSerializer(typeof (TXmlSerializableData));
using (var stream = File.OpenWrite(outputFile))
{
foreach (var item in data)
{
serializer.Serialize(stream, item);
}
}
}
public static IEnumerable<TData> Load<TData>(string inputFile)
where TData: class
{
var result = new List<TData>();
if (!File.Exists(inputFile))
{
return result;
}
var serializer = new XmlSerializer(typeof(TData));
using (var stream = File.OpenRead(inputFile))
{
TData itemToAdd;
do
{
itemToAdd = (TData) serializer.Deserialize(stream);
if (itemToAdd != null)
{
result.Add(itemToAdd);
}
} while (itemToAdd != null);
}
return result;
}
}
var data = listbox.GetData<TSerializableType>();
SerializerHelper.Save(data, "Secret file.txt");
and your type must be serializable and marked with [XmlSerializable] attribute.