ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Bson Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ System.Text.Bson
ΠΈΠ»ΠΈ System.Text.Json.Bson
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ API / Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅?
ΠΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠΎΡΠΌΠΎΠΉ API Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²Π΅ΡΡ Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΠΌΠΎΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Newtonsoft.Json Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ / Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ bson,
Π― Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Ρ
ΠΎΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΡΠΎΠΊ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
void Save<TData>(string file, TData data)
{
using var stream = File.OpenWrite(data);
BsonSerializer.Serialize<TData>(stream, data); // Can be async
}
void Save<TData>(string file, TData data)
{
var data = BsonSerializer.Serialize<TData>(data);
File.WriteAllBytes(file, data);
}
md5-82a793b316c425db07d8e79250ba8a1c
```csharp
TData Read<TData>(string file)
{
var data = File.ReadAllBytes(file);
return BsonSerializer.Deserialize<TData>(data);
}
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ - Ρ Π½Π°Ρ Π½Π΅Ρ ΠΏΠ»Π°Π½ΠΎΠ² ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.