struct ClientInfo
{
public string strName; //Name by which the user logged into the chat room
public string strPW;
}
ArrayList clientList = new ArrayList();
public static void Serialize(ArrayList input)
{
XmlSerializer serializer = new XmlSerializer(input.GetType());
TextWriter sw = new StreamWriter("users.txt");
serializer.Serialize(sw, input);
sw.Close();
}
Поэтому я пытаюсь сохранить комбинации Name/Password в ArrayList, и я пытаюсь сохранить этот ArrayList в файл и загружать его каждый раз, когда программа запущена. Однако программа останавливается на serializer.Serialize(sw, input);
выполните следующие действия:
Необработанное исключение типа "System.InvalidOperationException" произошло в System.Xml.dll
Что я делаю не так?
Вот так; Я думаю, что это исправляет практически все проблемы...
public class ClientInfo // you meant "class" right? since that clearly isn't a "value"
{
public string Name {get;set;} // use a property; don't use a name prefix
public string Password {get;set;} // please tell me you aren't storing passwords
}
List<ClientInfo> clientList = new List<ClientInfo>(); // typed list
public static void Serialize(List<ClientInfo> input) // typed list
{
if(input == null) throw new ArgumentNullException("input");
XmlSerializer serializer = new XmlSerializer(typeof(List<ClientInfo>));
using(TextWriter sw = new StreamWriter("users.txt")) // because: IDisposable
{
serializer.Serialize(sw, input);
sw.Close();
}
}
List<ClientInfo>
вместоArrayList
?.InnerException
, тоXmlSerializer
на самом деле очень хорош в объяснении причин, почему он не может что-то сделать