public static void Write(FileStream stream, object value) { using (var bw = new Newtonsoft.Json.Bson.BsonDataWriter(stream)) { var serializer = new Newtonsoft.Json.JsonSerializer(); serializer.Serialize(bw, value); } }
protected byte[] WriteJsonUsingNativeBsonWriter(Newtonsoft.Json.JsonConverter converter, object value, bool mustBeNested = false) { using (var stream = new MemoryStream()) using (var writer = new Newtonsoft.Json.Bson.BsonDataWriter(stream)) { WriteJson(converter, value, writer, mustBeNested); return(stream.ToArray()); } }
public static IJsonWriter GetBsonWriter(Stream stream) { var writer = new BinaryWriter(stream, Encoding.UTF8, true); var dataWriter = new Newtonsoft.Json.Bson.BsonDataWriter(writer); return(ComponentContext.Resolve <IJsonWriter>( new TypedParameter(typeof(Newtonsoft.Json.JsonWriter), dataWriter) )); }
public byte[] Serialize <T>(T obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); Newtonsoft.Json.Bson.BsonDataWriter writer = new Newtonsoft.Json.Bson.BsonDataWriter(ms); JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(writer, obj); return(ms.ToArray()); }
private byte[] Serialize <T>(T obj) { switch (Serializer) { case SerializerEnum.JSON: string json = JsonConvert.SerializeObject(obj); return(Encoding.ASCII.GetBytes(json)); case SerializerEnum.BSON: System.IO.MemoryStream ms = new System.IO.MemoryStream(); Newtonsoft.Json.Bson.BsonDataWriter writer = new Newtonsoft.Json.Bson.BsonDataWriter(ms); JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(writer, obj); return(ms.ToArray()); default: throw new ArgumentException("Invalid Serializer"); } }
/// <summary> /// Creates a tcp message for use in the tcp processor for sending messgaes over tcp /// </summary> /// <param name="message">the message to wrap</param> public TcpMessage(Message message) { Ensure.NotNull(message, nameof(message)); MessageType = message.GetType(); Log.Debug("Message MsgId=" + message.MsgId + " MsgTypeId=" + message.GetType().Name + " to be wrapped."); var ms = new MemoryStream(); #pragma warning disable 618 using (var writer = new BsonDataWriter(ms)) #pragma warning restore 618 { writer.WriteStartObject(); writer.WritePropertyName(MessageType.FullName); writer.WriteValue(JsonConvert.SerializeObject(message, Settings.JsonSettings)); writer.WriteEnd(); } Data = new ArraySegment <byte>(ms.ToArray()); WrappedMessage = message; }
//为了简化通讯协议,TCP用bson,http用JSON //Newtonsoft.Json 和 Newtonsoft.Json.Bson static void Main(string[] args) { Newtonsoft.Json.Linq.JValue v = new Newtonsoft.Json.Linq.JValue(11.0); Newtonsoft.Json.Linq.JObject obj = new Newtonsoft.Json.Linq.JObject(); obj["abc"] = v; var stream = new System.IO.MemoryStream(); Newtonsoft.Json.Bson.BsonDataWriter w = new Newtonsoft.Json.Bson.BsonDataWriter(stream); obj.WriteTo(w); var bts = stream.ToArray(); Newtonsoft.Json.Bson.BsonDataReader r = new Newtonsoft.Json.Bson.BsonDataReader(new System.IO.MemoryStream(bts)); var token = Newtonsoft.Json.Linq.JToken.ReadFrom(r); Console.WriteLine("Hello World!"); var tree = Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText("class A{public int aaa(){return 3+4;}}"); var op = new CSharpCompilationOptions(Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary); var ref1 = MetadataReference.CreateFromFile("needlib" + System.IO.Path.DirectorySeparatorChar + "mscorlib.dll"); var comp = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("aaa.dll", new[] { tree }, new[] { ref1 }, op); var ms = new System.IO.MemoryStream(); var mspdb = new System.IO.MemoryStream(); var result = comp.Emit(ms, mspdb); Console.WriteLine("result=" + result.Success); Console.WriteLine("dll=" + ms.Length); Console.WriteLine("pdb=" + mspdb.Length); System.IO.File.WriteAllBytes("111.dll", ms.ToArray()); System.IO.File.WriteAllBytes("111.pdb", mspdb.ToArray()); foreach (var d in result.Diagnostics) { Console.WriteLine(d.Descriptor.Description.ToString()); Console.WriteLine(d.Descriptor.Title.ToString()); Console.WriteLine(d.Descriptor.Category); Console.WriteLine(d.Descriptor.MessageFormat.ToString()); } Console.WriteLine("rosyln ok."); }
protected byte[] SerializeUsingNewtonsoftWriter <T>(T value, bool mustBeNested = false) { using (var memoryStream = new MemoryStream()) using (var newtonsoftWriter = new Newtonsoft.Json.Bson.BsonDataWriter(memoryStream)) { if (mustBeNested) { newtonsoftWriter.WriteStartObject(); newtonsoftWriter.WritePropertyName("x"); } var newtonsoftSerializer = new Newtonsoft.Json.JsonSerializer(); newtonsoftSerializer.Serialize(newtonsoftWriter, value); if (mustBeNested) { newtonsoftWriter.WriteEndObject(); } return(memoryStream.ToArray()); } }
internal static byte[] ToBson <TValue>(TValue value) { byte[] buffer; using (MemoryStream ms = new MemoryStream()) { using (var writer = new Newtonsoft.Json.Bson.BsonDataWriter(ms)) { var serializer = new Newtonsoft.Json.JsonSerializer { Formatting = Newtonsoft.Json.Formatting.None, Culture = CultureInfo.InvariantCulture, TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto, TypeNameAssemblyFormatHandling = Newtonsoft.Json.TypeNameAssemblyFormatHandling.Simple, }; serializer.Serialize(writer, value); } buffer = ms.ToArray(); } return(buffer); }
/// <summary> /// Setups the data faker. /// </summary> protected virtual void SetupDataFaker() { var res = Bogus.ResourceHelper.ReadResource(GetType().Assembly, "RockSweeper.Resources.en_rock.locale.json"); var json = System.Text.Encoding.UTF8.GetString(res); var jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json); using (var ms = new MemoryStream()) { using (var writer = new Newtonsoft.Json.Bson.BsonDataWriter(ms)) { var serializer = new Newtonsoft.Json.JsonSerializer(); serializer.Serialize(writer, jsonObj); } var bson = Bogus.Bson.Bson.Load(ms.ToArray()); // // Use the BORK language as a hack since we can't add a language that doesn't exist. // Bogus.Database.Data.Value.TryAdd("en_BORK", bson); } DataFaker = new Bogus.Faker("en_BORK"); }
//为了简化通讯协议,TCP用bson,http用JSON //Newtonsoft.Json 和 Newtonsoft.Json.Bson static void Main(string[] args) { Newtonsoft.Json.Linq.JValue v = new Newtonsoft.Json.Linq.JValue(11.0); Newtonsoft.Json.Linq.JObject obj = new Newtonsoft.Json.Linq.JObject(); obj["abc"] = v; var stream = new System.IO.MemoryStream(); Newtonsoft.Json.Bson.BsonDataWriter w = new Newtonsoft.Json.Bson.BsonDataWriter(stream); obj.WriteTo(w); var bts = stream.ToArray(); Newtonsoft.Json.Bson.BsonDataReader r = new Newtonsoft.Json.Bson.BsonDataReader(new System.IO.MemoryStream(bts)); var token = Newtonsoft.Json.Linq.JToken.ReadFrom(r); Console.WriteLine("Hello World!"); var tree = Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText("class A{public int aaa(){return 3;}}"); var op = new CSharpCompilationOptions(Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary); var ref1 = MetadataReference.CreateFromFile("needlib\\mscorlib.dll"); var comp = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("aaa.dll", new[] { tree }, new[] { ref1 }, op); var result = comp.Emit("e:\\111.dll", pdbPath: "e:\\111.pdb"); }