Podczas korzystania z biblioteki Json.NET można określić formatowanie podczas szeregowania ciągów, ale nie mogę znaleźć tej opcji podczas szeregowania bezpośrednio do strumienia. Czy czegoś brakuje?Czy JS.NET może serializować, aby przesyłać strumieniowo za pomocą funkcji Formatowanie?
Kod dla dwóch metod serializacji jest następujący:
public static string Serialize(MyObject obj)
{
JsonSerializerSettings settings = GetJsonSerializerSettings();
return JsonConvert.SerializeObject(obj, Formatting.Indented, settings);
}
public static void SerializeToStream(MyObject obj, Stream stream)
{
var serializer = JsonSerializer.Create(GetJsonSerializerSettings());
using (var sw = new StreamWriter(stream))
using (var jsonTextWriter = new JsonTextWriter(sw))
{
serializer.Serialize(jsonTextWriter, obj);
}
}
private static JsonSerializerSettings GetJsonSerializerSettings()
{
JsonSerializerSettings settings = new JsonSerializerSettings
{
Converters = new List<JsonConverter>
{
new StringEnumConverter()
}
};
return settings;
}
Witaj! Właśnie ciekawy dlaczego zrobiłeś tę metodę 'statyczną'. Dzięki! – 8protons
@ 8protons: Dlaczego nie chcesz, żeby był statyczny? Nie musi mieć dostępu do żadnego stanu instancji i nie implementuje interfejsu lub czegoś podobnego, w którym dziedziczenie jest użyteczne. –
_ "Cóż, dlaczego nie chciałbyś, żeby to było statyczne?" _... Dlaczego retoryczne pytanie? Pytałam, bo nie wiedziałam. Nie przychodziłeś do ciebie, by kwestionować swój autorytet w tej sprawie. – 8protons