Pārlūkot izejas kodu

修改ToBson方法,序列化可以减少一次new MemoryStream

tanghai 7 gadi atpakaļ
vecāks
revīzija
5ed5fd333e
1 mainītis faili ar 8 papildinājumiem un 3 dzēšanām
  1. 8 3
      Server/Model/Base/Helper/MongoHelper.cs

+ 8 - 3
Server/Model/Base/Helper/MongoHelper.cs

@@ -60,9 +60,14 @@ namespace ETModel
 		
 		
 		public static void ToBson(object obj, MemoryStream stream)
 		public static void ToBson(object obj, MemoryStream stream)
 		{
 		{
-			byte[] bytes = obj.ToBson();
-			stream.Write(bytes);
-			stream.Seek(0, SeekOrigin.Begin);
+			using (BsonBinaryWriter bsonWriter = new BsonBinaryWriter(stream, BsonBinaryWriterSettings.Defaults))
+			{
+				BsonSerializationContext context = BsonSerializationContext.CreateRoot(bsonWriter);
+				BsonSerializationArgs args = default (BsonSerializationArgs);
+				args.NominalType = typeof(object);
+				IBsonSerializer serializer = BsonSerializer.LookupSerializer(args.NominalType);
+				serializer.Serialize(context, args, obj);
+			}
 		}
 		}
 		
 		
 		public static object FromBson(Type type, byte[] bytes)
 		public static object FromBson(Type type, byte[] bytes)