是否有使用的默认IEqualityComparer<T>实现ReferenceEquals?
EqualityComparer<T>.Default使用ObjectComparer,它使用object.Equals().在我的例子中,对象已经实现IEquatable<T>,我需要忽略并仅通过对象的引用进行比较.
我有一个情况,我有一个非常大的C#对象,但是,我只需要返回一些属性(可以在嵌套对象上),允许客户端JavaScript修改这些属性,然后发送生成的对象返回服务器以执行就地部分反序列化.
我们的想法是重用一些非常大的现有业务对象,但要智能化,只能序列化并仅将这些属性发送回客户端应用程序进行修改(以便将传输的数据量保持在最低水平).
我基本上有一个XML文件,我使用"路径语法"预先定义所有绑定,这只表示我需要序列化的那些属性.所以,我可以使用"WorkOrder.UserField1"或"WorkOrder.Client.Name"之类的东西.
我尝试使用自定义合约解析程序来确定是否应该序列化属性; 但是,我似乎没有关于"路径"(换句话说,链中对象模型中的其他属性)的信息,以确定属性是否应该序列化.
我也尝试使用自定义的JsonTextWriter,但似乎我不能覆盖跟踪路径所需的方法,即使有可用的Path属性.为了能够查看被序列化的属性的路径层次结构并确定是否应该通过在表中查找路径并做出决定来序列化,是否有一些我可能会忽略的东西?