public virtual byte[] SerializeFronJObject(Newtonsoft.Json.Linq.JObject jobject) { m_memoryStream.Position = 0; jobject.WriteTo(m_bsonWriter); byte[] blob = new byte[m_memoryStream.Position]; Buffer.BlockCopy(m_memoryStream.GetBuffer(), 0, blob, 0, (int)m_memoryStream.Position); return(blob); }
public override void WriteJson(JsonWriter writer, SCNVector3 value, JsonSerializer serializer) { var @object = new Newtonsoft.Json.Linq.JObject { { "X", Newtonsoft.Json.Linq.JToken.FromObject(value.X) }, { "Y", Newtonsoft.Json.Linq.JToken.FromObject(value.Y) }, { "Z", Newtonsoft.Json.Linq.JToken.FromObject(value.Z) } }; @object.WriteTo(writer); }
public override void WriteJson(JsonWriter writer, SCNMatrix4 value, JsonSerializer serializer) { var @object = new Newtonsoft.Json.Linq.JObject { { "Row0", Newtonsoft.Json.Linq.JToken.FromObject(value.Row0, serializer) }, { "Row1", Newtonsoft.Json.Linq.JToken.FromObject(value.Row1, serializer) }, { "Row2", Newtonsoft.Json.Linq.JToken.FromObject(value.Row2, serializer) }, { "Row3", Newtonsoft.Json.Linq.JToken.FromObject(value.Row3, serializer) }, }; @object.WriteTo(writer); }
//为了简化通讯协议,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."); }
public override void WriteJson(JsonWriter writer, [AllowNull] EventData value, JsonSerializer serializer) { if (value == null) { serializer.Serialize(writer, null); return; } var jObject = new Newtonsoft.Json.Linq.JObject(); jObject["type"] = value.GetType().Name.TrimEnd("EventData"); foreach (var property in value.GetType().GetProperties()) { var propValue = property.GetValue(value); if (propValue == null) { continue; } jObject[property.Name] = Newtonsoft.Json.Linq.JToken.FromObject(propValue, serializer); } jObject.WriteTo(writer); }
public override void ExecuteResult(System.Web.Mvc.ControllerContext context) { System.Web.HttpResponseBase response = context.HttpContext.Response; response.ContentType = "application/json"; response.ContentEncoding = System.Text.Encoding.UTF8; Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer(); using (System.IO.StreamWriter sw = new System.IO.StreamWriter(response.OutputStream)) { using (Newtonsoft.Json.JsonTextWriter writer = new Newtonsoft.Json.JsonTextWriter(sw)) { writer.WriteStartArray(); foreach (object item in itemsToSerialize) { Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.Linq.JObject.FromObject(item, serializer); obj.WriteTo(writer); writer.Flush(); } // Next item writer.WriteEndArray(); } // End using writer } // End Using sw }
//为了简化通讯协议,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"); }