ServiceStack : 将长数字序列化为字符串

ServiceStack : Serialize long number to string

在我的 C# 代码中,我有一个 long 变量,例如

public long ID { get; set; }

现在当 ServiceStack returns 它到 Web 浏览器时,它被序列化为

{ "id" : 97786707294275442 }

这是错误的,因为 long 在 C#

中的范围是 2^63

但是在Javascript中,Number.MAX_SAFE_INTEGER是2^53-1,也就是9007199254740991

因为97786707294275442大于9007199254740991,在JS中四舍五入

long的值大于Number.MAX_SAFE_INTEGER时,是否可以让ServiceStack将long序列化为string

JsConfig<long>.RawSerializeFn = (long num) =>
            {
                if (num > 9007199254740991L || num < -9007199254740991L)
                    return string.Format("\"{0}\"", num);
                return num.ToString();
            };

这是最好的方法吗?