我们有一些由 WCF 服务(使用wsHttpBinding
)公开并序列化为 XML 的对象。以下是其中一个的摘录:
[DataContract]
public class Person
{
[DataMember] private string _forename;
[DataMember] private string _middleInitial;
[DataMember] private string _surname;
[DataMember] private List<EducationRecord> _educationRecords;
[DataMember] private List<Address> _addresses;
[DataMember] private List<InternetAddress> _internetAddresses;
[DataMember] private List<PhoneNumber> _phoneNumbers;
[DataMember] private List<InternationalExperience> _internationalExperience;
[DataMember] private List<ProfessionalQualification> _professionalQualifications;
[DataMember] private List<KnownLanguage> _knownLanguages;
// And there's more ...
}
如您所见,有许多集合,其中一些包含的对象在它们下面还有更多的子对象。当我们针对我们的生产数据运行它时,我们发现虽然大多数 Person 记录都很好,但有些记录会转化为非常大的序列化消息(例如,>500 KB)。
现在我希望我们需要开始修剪我们的对象图,但我想找出哪些数据位对序列化消息的贡献最大。例如,它是Address
对象列表,还是对象中的一些数据块InternationalExperience
。
您是否知道有一种工具可以捕获和分析正在发送的 XML 消息,以便我可以找出占用最多空间的内容?