Fix some problems with LocalizedString serialization in C#
This commit is contained in:
@@ -244,16 +244,21 @@ namespace FlaxEngine.Json
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
|
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
|
||||||
{
|
{
|
||||||
|
#if FLAX_EDITOR
|
||||||
|
bool writeTypename = (serializer.TypeNameHandling & TypeNameHandling.Objects) == TypeNameHandling.Objects;
|
||||||
|
#else
|
||||||
|
bool writeTypename = false;
|
||||||
|
#endif
|
||||||
var str = (LocalizedString)value;
|
var str = (LocalizedString)value;
|
||||||
if (string.IsNullOrEmpty(str.Id))
|
if (string.IsNullOrEmpty(str.Id) && !writeTypename)
|
||||||
{
|
{
|
||||||
writer.WriteValue(str.Value);
|
writer.WriteValue(str.Value ?? string.Empty);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writer.WriteStartObject();
|
writer.WriteStartObject();
|
||||||
#if FLAX_EDITOR
|
#if FLAX_EDITOR
|
||||||
if ((serializer.TypeNameHandling & TypeNameHandling.Objects) == TypeNameHandling.Objects)
|
if (writeTypename)
|
||||||
{
|
{
|
||||||
writer.WritePropertyName("$type");
|
writer.WritePropertyName("$type");
|
||||||
writer.WriteValue("FlaxEngine.LocalizedString, FlaxEngine.CSharp");
|
writer.WriteValue("FlaxEngine.LocalizedString, FlaxEngine.CSharp");
|
||||||
|
|||||||
Reference in New Issue
Block a user