【问题标题】:is there an easy way to parse a class into a string in both directions有没有一种简单的方法可以在两个方向上将一个类解析为一个字符串
【发布时间】:2020-11-25 04:52:58
【问题描述】:

假设我有一个这样的简单类:

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

【问题讨论】:

标签: c# string class


【解决方案1】:

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

示例

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

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

如果您想更好地控制字符串的外观,一种方法是在您的类中覆盖ToString(),并编写一个自定义解码器来取消编码您的数据并设置您的属性(这很容易出错更复杂的类型)。

【讨论】:

  • 如果在 .NET Core 3.x 中,您不再需要 Json.net。现在框架中有一个Json serializer
猜你喜欢
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 2010-12-05
相关资源
最近更新 更多