У меня есть класс, который при сериализации я хочу вернуть как одну строку без пар ключ-значение.Строка становится строкой.Int становится int.Как мне сделать мой класс строкой?
Глядя на DataContract и Сериализуемый , это не выглядит возможным.Настройка SerializationInfo.AddValue (имя, значение) заставляет весь ваш объект использовать подход ключ-значение.Я просто хочу вернуть "A and B" .
[DataContract]
public class MyObject
{
public int A { get; set; }
public int B { get; set; }
}
При сериализации с использованием, например, DataContractJsonSerializer , я хочу, чтобы оно было:
4 and 2
Не
{
"A": 4,
"B": 2
}
Итак, допустим, у меня есть родительский класс, который использует оба этих пользовательских типа:
[DataContract]
public class Parent
{
[DataMember]
public MyObject One { get; set; }
[DataMember]
public MyObject Two { get; set; }
}
Я хочу, чтобы он сериализовался следующим образом:
{
"One": "4 and 2",
"Two": "6 and 8"
}
Вместо этого мне кажется, что я могу сделать только одно:
{
"One": {
"A": 4,
"B": 2
},
"Two": {
"A": 6,
"B": 8
}
}
Единственное решение, которое будет работать, - это добавить пользовательскую сериализацию в Parent, установивОдин и два соответственно, но я не хочу этого делать, я хочу, чтобы мой новый класс везде сериализовался как строка.
Могу ли я сериализовать тип как одно возвращаемое значение?Или все типы, кроме встроенных, таких как int и string, должны сериализоваться в объект?