有没有一种简单的方法可以将类双向解析为字符串

时间:2020-08-05 03:23:11

标签: c# string class

假设我有一个简单的类,

public class Person {
    public string name;
    public int age;
    public Gender gender; //enum type

    //constructor
}

是否有内置方法将此类的对象解析为字符串,然后返回到Person

我可能会自己实现一个ToString(),但我想知道是否已经为此做了一些事情。

该字符串不需要可理解,只要它是可逆的即可。


示例

Person p = new Person("Bob", 12, Gender.Male);
string s = Stringify(p);   //s = "Bob#12#Male"
Person c = Personify(s);   //c is just like Bob

1 个答案:

答案 0 :(得分:4)

您可以使用多种序列化来实现此目的,一种简单的方法是使用Json.net

示例

var funkyString = JsonConvert.SerializeObject(person);
var person = JsonConvert.DeserializeObject<person>(funkyString);

注意:如果在.NET Core 3.x中,则不再需要Json.net。框架中现在有一个Json serializer。 – insane_developer

如果您想进一步控制字符串的外观,一种方法是覆盖类中的ToString(),然后编写自定义解码器以对数据进行未编码并设置属性(这很容易获得对于更复杂的类型是错误的。)