newtonsoft.json实现深克隆和堆中实例判等

public static bool DeepEquals(object obj1,object obj2)
{
    // 如果两个栈中引用指向堆中的同一个实例,则一定相等
    if (object.ReferenceEquals(obj1, obj2))
    {
        return true;
    }
    //将.NET对象转换成Json字符串,字符串相等,则.NET对象也相等
    JToken t1 = JToken.FromObject(obj1);
    JToken t2 = JToken.FromObject(obj2);
    return JToken.DeepEquals(t1,t2 );
}

public new static bool ReferenceEquals(object obj1, object obj2)
{
    return object.ReferenceEquals(obj1, obj2);
}

public static T DeepClone<T>(T obj)
{
    //克隆Json字符串
    JToken token = JToken.FromObject(obj);
    token = token.DeepClone();
    return token.ToObject<T>();
}

newtonsoft.json实现深克隆和堆中实例判等

上一篇:webpack各种配置文件设置


下一篇:linux下php7编译安装swoole扩展