in Microsoft.Shared.Dna.Json/JsonBuilder.cs [1143:1185]
private unsafe bool TryEncode(string value, int reserve, int rollback)
{
if (value == null)
{
return this.builder.TryAppend(JsonConstants.NullValue, reserve, rollback);
}
if (!this.builder.TryAppend(JsonConstants.StringEnclosure, reserve, rollback))
{
return false;
}
fixed (char* valuePointer = value)
{
int valueLength = value.Length;
for (int i = 0; i < valueLength; i++)
{
char c = *(valuePointer + i);
string escaped = null;
int asIndex = c;
if (asIndex < JsonConstants.EscapeSequencesLength)
{
escaped = JsonConstants.EscapeSequences[asIndex];
}
if (escaped == null)
{
if (this.builder.TryAppend(c, reserve, rollback))
{
continue;
}
}
else if (this.builder.TryAppend(escaped, reserve, rollback))
{
continue;
}
return false;
}
}
return this.builder.TryAppend(JsonConstants.StringEnclosure, reserve, rollback);
}