Example #1
0
 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);
     }
 }
Example #2
0
 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());
         }
 }
Example #3
0
        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)
                       ));
        }
Example #4
0
        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());
        }
Example #5
0
        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");
            }
        }
Example #6
0
        /// <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;
        }
Example #7
0
        //为了简化通讯协议,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.");
        }
Example #8
0
        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());
                }
        }
Example #9
0
        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");
        }
Example #11
0
        //为了简化通讯协议,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");
        }