У класса есть несколько свойств (скажем, X1, X2, X3), которые являются экземплярами объектов (класса X), содержащими большие списки.
Код: Выделить всё
public class A
{
public X X1 { get; set; }
public X X2 { get; set; }
public X X3 { get; set; }
}
public class X
{
// This should request the serializer to put this into a separate file rather than within the parent's json
[JsonIgnore]
public bool SplitJson { get; set; }
public List LargeList { get; set; }
}
public class Y
{
public List AnotherList { get; set; }
}
public class Temp
{
public static void JsonTest()
{
A a = new()
{
X1 = new()
{
LargeList =
[
new()
{
AnotherList = ["placeholder"]
}
],
SplitJson = true
},
X2 = new()
{
LargeList =
[
new()
{
AnotherList = ["dummy"]
}
],
SplitJson = true
},
X3 = new()
{
LargeList =
[
new()
{
AnotherList = ["text"]
}
]
}
};
JsonSerializerOptions options = new() { WriteIndented = true };
Debug.WriteLine(JsonSerializer.Serialize(a, options));
}
}
Например: это обычный вывод
Код: Выделить всё
{
"X1": {
"LargeList": [
{
"AnotherList": [
"placeholder"
]
}
]
},
"X2": {
"LargeList": [
{
"AnotherList": [
"dummy"
]
}
]
},
"X3": {
"LargeList": [
{
"AnotherList": [
"text"
]
}
]
}
}
Код: Выделить всё
{
"X1": "X1.json",
"X2": "X2.json",
"X3": {
"LargeList": [
{
"AnotherList": [
"text"
]
}
]
}
}
Кроме того, есть ли какие-либо способы реализовать отложенную (или асинхронную) установку свойств? Мне нужно, чтобы класс A загружался первым, но свойства с относительными путями к файлам json не должны десериализоваться до тех пор, пока они не потребуются. Но относительные пути к отдельным Json-файлам должны где-то храниться и при необходимости десериализоваться.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -json-in-c