コード例 #1
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     return(JsonSerializer.CreateDefault(new JsonSerializerSettings {
         ContractResolver = resolver
     }).Deserialize(reader, objectType));
 }
コード例 #2
0
 public JsonModelBinder() : this(JsonSerializer.CreateDefault())
 {
 }
コード例 #3
0
 /// <summary>
 /// Empty constructor if no converters are needed
 /// </summary>
 public JsonNetBodyDeserializer()
 {
     this.serializer = JsonSerializer.CreateDefault();
 }
コード例 #4
0
        public static byte[] ToBson <T>(this T data, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            using (var ms = new MemoryStream()) {
                using (var writer = new BsonWriter(ms))
                    serializer.Serialize(writer, data, typeof(T));

                return(ms.ToArray());
            }
        }
コード例 #5
0
        public static object FromBson(this byte[] data, Type objectType, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            using (var sw = new MemoryStream(data))
                using (var sr = new BsonReader(sw))
                    return(serializer.Deserialize(sr, objectType));
        }
コード例 #6
0
 public static JsonSerializer ToSerializer(this JsonSerializerSettings settings)
 {
     return(JsonSerializer.CreateDefault(settings));
 }
コード例 #7
0
        public static T FromJson <T>(this JObject data, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            return(data.ToObject <T>(serializer));
        }
コード例 #8
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     return(JsonSerializer.CreateDefault(ExtractAndOverrideSettings(serializer)).Deserialize(reader, objectType));
 }
コード例 #9
0
ファイル: CactbotOverlay.cs プロジェクト: zorianak/cactbot
        void Initialize()
        {
            ffxiv_                = new FFXIVProcess(this);
            fight_tracker_        = new FightTracker(this);
            wipe_detector_        = new WipeDetector(this);
            dispatch_json_writer_ = new JsonTextWriter(new System.IO.StringWriter(dispatch_string_builder_));
            dispatch_serializer_  = JsonSerializer.CreateDefault();
            message_serializer_   = JsonSerializer.CreateDefault();

            // Our own timer with a higher frequency than OverlayPlugin since we want to see
            // the effect of log messages quickly.
            fast_update_timer_          = new System.Timers.Timer();
            fast_update_timer_.Elapsed += (o, args) => {
                // Hold this while we're in here to prevent the Renderer or Browser from disappearing from under us.
                fast_update_timer_semaphore_.Wait();
                int timer_interval = kSlowTimerMilli;
                try {
                    timer_interval = SendFastRateEvents();
                } catch (Exception e) {
                    // SendFastRateEvents holds this semaphore until it exits.
                    LogError("Exception in SendFastRateEvents: " + e.Message);
                    LogError("Stack: " + e.StackTrace);
                    LogError("Source: " + e.Source);
                }
                fast_update_timer_semaphore_.Release();
                fast_update_timer_.Interval = timer_interval;
                fast_update_timer_.Start();
            };
            fast_update_timer_.AutoReset = false;

            FFXIVPlugin plugin_helper = new FFXIVPlugin(this);

            language_ = plugin_helper.GetLocaleString();

            // Incoming events.
            Advanced_Combat_Tracker.ActGlobals.oFormActMain.OnLogLineRead += OnLogLineRead;

            // Outgoing JS events.
            OnGameExists        += (e) => DispatchToJS(e);
            OnGameActiveChanged += (e) => DispatchToJS(e);
            OnZoneChanged       += (e) => DispatchToJS(e);
            if (this.Config.LogUpdatesEnabled)
            {
                OnLogsChanged       += (e) => DispatchToJS(e);
                OnImportLogsChanged += (e) => DispatchToJS(e);
            }
            OnPlayerChanged   += (e) => DispatchToJS(e);
            OnTargetChanged   += (e) => DispatchToJS(e);
            OnFocusChanged    += (e) => DispatchToJS(e);
            OnInCombatChanged += (e) => DispatchToJS(e);
            OnPlayerDied      += (e) => DispatchToJS(e);
            OnPartyWipe       += (e) => DispatchToJS(e);
            OnDataFilesRead   += (e) => DispatchToJS(e);

            fast_update_timer_.Interval = kFastTimerMilli;
            fast_update_timer_.Start();

            if (is_first_overlay_initialized_)
            {
                is_first_overlay_initialized_ = false;

                var     versions = new VersionChecker(this);
                Version local    = versions.GetLocalVersion();
                Version remote   = versions.GetRemoteVersion();

                Version overlay = versions.GetOverlayPluginVersion();
                Version ffxiv   = versions.GetFFXIVPluginVersion();
                Version act     = versions.GetACTVersion();

                // Print out version strings and locations to help users debug.
                LogInfo("cactbot: {0} {1}", local.ToString(), versions.GetCactbotLocation());
                LogInfo("OverlayPlugin: {0} {1}", overlay.ToString(), versions.GetOverlayPluginLocation());
                LogInfo("FFXIV Plugin: {0} {1}", ffxiv.ToString(), versions.GetFFXIVPluginLocation());
                LogInfo("ACT: {0} {1}", act.ToString(), versions.GetACTLocation());
                if (language_ == null)
                {
                    LogInfo("Language: {0}", "(unknown)");
                }
                else
                {
                    LogInfo("Language: {0}", language_);
                }

                if (remote.Major == 0 && remote.Minor == 0)
                {
                    var result = System.Windows.Forms.MessageBox.Show(Overlay,
                                                                      "Github error while checking Cactbot version. " +
                                                                      "Your current version is " + local + ".\n\n" +
                                                                      "Manually check for newer version now?",
                                                                      "Cactbot Manual Check",
                                                                      System.Windows.Forms.MessageBoxButtons.YesNo);
                    if (result == System.Windows.Forms.DialogResult.Yes)
                    {
                        System.Diagnostics.Process.Start(VersionChecker.kReleaseUrl);
                    }
                }
                else if (local < remote)
                {
                    Version remote_seen_before = new Version(Config.RemoteVersionSeen);
                    Config.RemoteVersionSeen = remote.ToString();

                    string update_message = "There is a new version of Cactbot is available at: \n" +
                                            VersionChecker.kReleaseUrl + " \n\n" +
                                            "New version " + remote + " \n" +
                                            "Current version " + local;
                    if (remote == remote_seen_before)
                    {
                        LogError(update_message);
                    }
                    else
                    {
                        var result = System.Windows.Forms.MessageBox.Show(Overlay,
                                                                          update_message + "\n\n" +
                                                                          "Get it now?",
                                                                          "Cactbot update available",
                                                                          System.Windows.Forms.MessageBoxButtons.YesNo);
                        if (result == System.Windows.Forms.DialogResult.Yes)
                        {
                            System.Diagnostics.Process.Start(VersionChecker.kReleaseUrl);
                        }
                    }
                    Config.RemoteVersionSeen = remote.ToString();
                }
            }

            string net_version_str = System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(int).Assembly.Location).ProductVersion;

            string[] net_version = net_version_str.Split('.');
            if (int.Parse(net_version[0]) < kRequiredNETVersionMajor || int.Parse(net_version[1]) < kRequiredNETVersionMinor)
            {
                LogError("Requires .NET 4.6 or above. Using " + net_version_str);
            }

            init_ = true;
            if (deferred_navigate_ != null)
            {
                this.Navigate(deferred_navigate_);
            }
        }
コード例 #10
0
 public JsonNetCodec(JsonSerializer serializer)
 {
     m_serializer = serializer ?? JsonSerializer.CreateDefault();
 }
コード例 #11
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     JsonSerializer.CreateDefault(ExtractAndOverrideSettings(serializer)).Serialize(writer, value);
 }
コード例 #12
0
 public JsonNetCodec(JsonSerializerSettings settings = null)
     : this(JsonSerializer.CreateDefault(settings))
 {
 }
        /// <summary>
        /// Creates a <see cref="SpriteFontDescription"/> from the specified input file.
        /// </summary>
        private static SpriteFontDescription CreateSpriteFontDescription(ContentManager manager, IContentProcessorMetadata metadata, JObject input)
        {
            var serializer = JsonSerializer.CreateDefault(UltravioletJsonSerializerSettings.Instance);

            return(input.ToObject <SpriteFontDescription>(serializer));
        }
コード例 #14
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     JsonSerializer.CreateDefault(new JsonSerializerSettings {
         ContractResolver = resolver
     }).Serialize(writer, value);
 }
コード例 #15
0
        public void Test_intralipid_scatterer_default_json_deserializer()
        {
            var json   = "{\"intralipidScatterer\": {}}";
            var reader = new JsonTextReader(new StringReader(json));

            while (reader.TokenType == JsonToken.None)
            {
                if (!reader.Read())
                {
                    break;
                }
                var converter = new ScattererConverter();
                var obj       = (IntralipidScatterer)converter.ReadJson(reader, typeof(IntralipidScatterer), new IntralipidScatterer(), false, JsonSerializer.CreateDefault());
                Assert.IsNotNull(obj);
                Assert.AreEqual(0.01, obj.VolumeFraction);
            }
        }
コード例 #16
0
 public JsonDotNetSerializer(JsonSerializerSettings settings = null)
 {
     _settings = settings ?? new JsonSerializerSettings();
     _settings.Converters.Add(new EmptyDateToMinDateConverter());
     _jsonSerializer = JsonSerializer.CreateDefault(_settings);
 }
コード例 #17
0
        public void Test_mie_scatterer_json_deserializer()
        {
            var json   = "{\"particleRadius\": 0.8,\"particleRefractiveIndex\": 1.6,\"mediumRefractiveIndex\": 1.1,\"volumeFraction\": 0.1}";
            var reader = new JsonTextReader(new StringReader(json));

            while (reader.TokenType == JsonToken.None)
            {
                if (!reader.Read())
                {
                    break;
                }

                var converter = new ScattererConverter();
                var obj       = (MieScatterer)converter.ReadJson(reader, typeof(MieScatterer), new MieScatterer(), false, JsonSerializer.CreateDefault());
                Assert.IsNotNull(obj);
                Assert.AreEqual(0.8, obj.ParticleRadius);
                Assert.AreEqual(1.6, obj.ParticleRefractiveIndexMismatch);
                Assert.AreEqual(1.1, obj.MediumRefractiveIndexMismatch);
                Assert.AreEqual(0.1, obj.VolumeFraction);
            }
        }
コード例 #18
0
ファイル: Json.cs プロジェクト: IlyaSV/Owin.Routing
 public static JsonSerializer CreateSerializer()
 {
     return(JsonSerializer.CreateDefault(Settings));
 }
コード例 #19
0
        public static string ToJson <T>(this T data, Formatting formatting = Formatting.None, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            serializer.Formatting = formatting;

            using (var sw = new StringWriter()) {
                serializer.Serialize(sw, data, typeof(T));
                return(sw.ToString());
            }
        }
コード例 #20
0
 public NewtonsoftJsonTextSerializer(JsonSerializerSettings settings)
 {
     Serializer = JsonSerializer.CreateDefault(settings);
 }
コード例 #21
0
        public static T FromJson <T>(this string data, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            using (var sw = new StringReader(data))
                using (var sr = new JsonTextReader(sw))
                    return(serializer.Deserialize <T>(sr));
        }
コード例 #22
0
 public NewtonsoftJsonTextSerializer()
 {
     Serializer = JsonSerializer.CreateDefault();
 }
コード例 #23
0
        public static T FromBson <T>(this byte[] data, JsonSerializerSettings settings = null)
        {
            JsonSerializer serializer = settings == null?JsonSerializer.CreateDefault() : JsonSerializer.CreateDefault(settings);

            using (var sw = new MemoryStream(data))
                using (var sr = new BsonReader(sw))
                    return(serializer.Deserialize <T>(sr));
        }
コード例 #24
0
        /// <summary>
        /// Writes this token to a <see cref="JsonWriter"/>.
        /// </summary>
        /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
        /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
        public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
        {
            if (converters != null && converters.Length > 0 && _value != null)
            {
                JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType());
                if (matchingConverter != null && matchingConverter.CanWrite)
                {
                    matchingConverter.WriteJson(writer, _value, JsonSerializer.CreateDefault());
                    return;
                }
            }

            switch (_valueType)
            {
            case JTokenType.Comment:
                writer.WriteComment((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Raw:
                writer.WriteRawValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Null:
                writer.WriteNull();
                return;

            case JTokenType.Undefined:
                writer.WriteUndefined();
                return;

            case JTokenType.Integer:
#if !(NET20 || NET35 || PORTABLE40 || PORTABLE)
                if (_value is BigInteger)
                {
                    writer.WriteValue((BigInteger)_value);
                }
                else
#endif
                writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Float:
                if (_value is decimal)
                {
                    writer.WriteValue((decimal)_value);
                }
                else if (_value is double)
                {
                    writer.WriteValue((double)_value);
                }
                else if (_value is float)
                {
                    writer.WriteValue((float)_value);
                }
                else
                {
                    writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture));
                }
                return;

            case JTokenType.String:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Boolean:
                writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Date:
#if !NET20
                if (_value is DateTimeOffset)
                {
                    writer.WriteValue((DateTimeOffset)_value);
                }
                else
#endif
                writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Bytes:
                writer.WriteValue((byte[])_value);
                return;

            case JTokenType.Guid:
            case JTokenType.Uri:
            case JTokenType.TimeSpan:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;
            }

            throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type.");
        }
コード例 #25
0
        public void Can_read_1()
        {
            BigIntegerConverter converter = new BigIntegerConverter();
            JsonReader          reader    = new JsonTextReader(new StringReader("1"));

            reader.ReadAsString();
            BigInteger result = converter.ReadJson(reader, typeof(BigInteger), BigInteger.Zero, false, JsonSerializer.CreateDefault());

            Assert.AreEqual(BigInteger.Parse("1"), result);
        }
コード例 #26
0
        /// <summary>
        /// Writes this token to a <see cref="JsonWriter"/> asynchronously.
        /// </summary>
        /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
        /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
        /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
        /// <returns>A <see cref="Task"/> that represents the asynchronous write operation.</returns>
        public override Task WriteToAsync(JsonWriter writer, CancellationToken cancellationToken, params JsonConverter[] converters)
        {
            if (converters != null && converters.Length > 0 && _value != null)
            {
                JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType());
                if (matchingConverter != null && matchingConverter.CanWrite)
                {
                    // TODO: Call WriteJsonAsync when it exists.
                    matchingConverter.WriteJson(writer, _value, JsonSerializer.CreateDefault());
                    return(AsyncUtils.CompletedTask);
                }
            }

            switch (_valueType)
            {
            case JTokenType.Comment:
                return(writer.WriteCommentAsync(_value?.ToString(), cancellationToken));

            case JTokenType.Raw:
                return(writer.WriteRawValueAsync(_value?.ToString(), cancellationToken));

            case JTokenType.Null:
                return(writer.WriteNullAsync(cancellationToken));

            case JTokenType.Undefined:
                return(writer.WriteUndefinedAsync(cancellationToken));

            case JTokenType.Integer:
                if (_value is int)
                {
                    return(writer.WriteValueAsync((int)_value, cancellationToken));
                }

                if (_value is long)
                {
                    return(writer.WriteValueAsync((long)_value, cancellationToken));
                }

                if (_value is ulong)
                {
                    return(writer.WriteValueAsync((ulong)_value, cancellationToken));
                }

#if HAVE_BIG_INTEGER
                if (_value is BigInteger)
                {
                    return(writer.WriteValueAsync((BigInteger)_value, cancellationToken));
                }
#endif

                return(writer.WriteValueAsync(Convert.ToInt64(_value, CultureInfo.InvariantCulture), cancellationToken));

            case JTokenType.Float:
                if (_value is decimal)
                {
                    return(writer.WriteValueAsync((decimal)_value, cancellationToken));
                }

                if (_value is double)
                {
                    return(writer.WriteValueAsync((double)_value, cancellationToken));
                }

                if (_value is float)
                {
                    return(writer.WriteValueAsync((float)_value, cancellationToken));
                }

                return(writer.WriteValueAsync(Convert.ToDouble(_value, CultureInfo.InvariantCulture), cancellationToken));

            case JTokenType.String:
                return(writer.WriteValueAsync(_value?.ToString(), cancellationToken));

            case JTokenType.Boolean:
                return(writer.WriteValueAsync(Convert.ToBoolean(_value, CultureInfo.InvariantCulture), cancellationToken));

            case JTokenType.Date:
                if (_value is DateTimeOffset)
                {
                    return(writer.WriteValueAsync((DateTimeOffset)_value, cancellationToken));
                }

                return(writer.WriteValueAsync(Convert.ToDateTime(_value, CultureInfo.InvariantCulture), cancellationToken));

            case JTokenType.Bytes:
                return(writer.WriteValueAsync((byte[])_value, cancellationToken));

            case JTokenType.Guid:
                return(writer.WriteValueAsync(_value != null ? (Guid?)_value : null, cancellationToken));

            case JTokenType.TimeSpan:
                return(writer.WriteValueAsync(_value != null ? (TimeSpan?)_value : null, cancellationToken));

            case JTokenType.Uri:
                return(writer.WriteValueAsync((Uri)_value, cancellationToken));
            }

            throw MiscellaneousUtils.CreateArgumentOutOfRangeException(nameof(Type), _valueType, "Unexpected token type.");
        }
コード例 #27
0
ファイル: JArray.cs プロジェクト: Micmaz/DataImporter
 /// <summary>
 /// Creates a <see cref="JArray"/> from an object.
 /// </summary>
 /// <param name="o">The object that will be used to create <see cref="JArray"/>.</param>
 /// <returns>A <see cref="JArray"/> with the values of the specified object</returns>
 public new static JArray FromObject(object o)
 {
     return(FromObject(o, JsonSerializer.CreateDefault()));
 }
コード例 #28
0
        public void Test_powerlawscatterer_default_json_deserializer()
        {
            var json   = "{\"powerLawScatterer\": {}}";
            var reader = new JsonTextReader(new StringReader(json));

            while (reader.TokenType == JsonToken.None)
            {
                if (!reader.Read())
                {
                    break;
                }
                var converter = new ScattererConverter();
                var obj       = (PowerLawScatterer)converter.ReadJson(reader, typeof(PowerLawScatterer), new PowerLawScatterer(), false, JsonSerializer.CreateDefault());
                Assert.IsNotNull(obj);
                Assert.AreEqual(1.0, obj.A);
                Assert.AreEqual(0.1, obj.B);
            }
        }
コード例 #29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonNetSerializer"/> class.
 /// </summary>
 public JsonNetSerializer()
 {
     this.serializer = JsonSerializer.CreateDefault(JsonSerialization.GetDefaultSerializerSettings());
 }
コード例 #30
0
 public static JToken Convert(object data)
 {
     return(JToken.FromObject(data, JsonSerializer.CreateDefault(JsonSettings)));
 }