есть ли простой способ разобрать класс на строку в обоих направлениях - PullRequest
0 голосов
/ 05 августа 2020

Предположим, у меня есть такой простой класс:

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 Ответ

4 голосов
/ 05 августа 2020

Для этого можно использовать множество видов сериализации, один из простых подходов - использовать Json. net

Пример

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

Примечание : если используется NET Core 3.x, Json.net вам больше не понадобится. Теперь во фреймворке есть сериализатор Json . - insane_developer

Если вам нужен больший контроль над тем, как выглядит строка, один из подходов - переопределить ToString() в вашем классе и написать собственный декодер для расшифровки ваших данных и установки ваших свойств (это было бы легко ошибиться для более сложных типов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...