保存操纵杆列表

Save joystick list

如何保存和加载 SlimDX.DirectInput.Joystick to/from 文件列表? 我试过了

using (Stream stream = File.Open("joys.xml", FileMode.Create))
{
    var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

    bformatter.Serialize(stream, usedsticks);
}

但我遇到了一个例外:

An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll

Additional information: Typ SlimDX.DirectInput.Joystick v sestavení SlimDX, Version=4.0.13.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9 není označen jako serializovatelný.

我不会说捷克语,但我想 "Typ SlimDX.DirectInput.Joystick není označen jako serializovatelný." 的意思是 "type SlimDX.DirectInput.Joystick isn't serializable"。这意味着 SlimDX.DirectInput.Joystick 根本无法通过反序列化实例化。

您尝试序列化的对象 class 必须标记为 可序列化。请参阅有关 SerializableAttribute class - What is [Serializable] and when should I use it?

的相关问题

考虑到最初的问题,通常你应该编写自己的可序列化 classes 来保存。您应该在之后使用加载的数据以通常的方式实例化 SlimDX.DirectInput.Joystick(或任何)对象。

为了将对象保存到文件中,您可以选择合适的文件格式。 例如,JSON - Turn C# object into a JSON string in .NET 4