我是c#新手,所以我不确定这是不是一个愚蠢的问题,但是…我有一个类里面有变量
public class A {
string name;
int age;
public A() {
Console.WriteLine("Input name");
name = Console.ReadLine();
//...
}
}
,然后创建这个类的实例
static void Main(string[] args) {
//some code
A abc = new A();
}
,我想将实例保存为TXT文件。有点像游戏中的保存/加载系统
我尝试使用xml, streamWriter等解决方案,但所有这些都只会在我的程序中导致更多错误
我甚至不确定这是否可能,但是,谢谢
是的,这是可能的-它被称为序列化。目前。net从。net Core 3.0开始就支持System.Text.Json
标准库命名空间。
例如,要将对象序列化为JSON文档,可以在字段中使用JsonPropertyName
属性:
using System.Text.Json.Serialization;
public class A
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("age")]
public int Age { get; set; }
public A()
{
Console.WriteLine("Input name");
name = Console.ReadLine();
//...
}
}
并将对象序列化为json格式的string
:
using System.Text.Json;
A someObj = new();
// some magic
string jsonContent = JsonSerializer.Serialize(someObj); // output like this: {"name":"some name","age":29}
现在你只需要把它保存在你的应用程序中指定的正确的文件路径中,以便在需要的时候保存和加载它。