分析XML序列化对象图以找出占用大部分空间的内容

时间:2009-10-15 21:00:35

标签: wcf serialization datacontractserializer

我们有一些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 ...

}

如您所见,有许多集合,一些包含的对象下面还有其他子对象。当我们针对我们的生产数据运行时,我们发现虽然大多数人员记录都很好,但有些记录转换为非常大的序列化消息(例如,> 500 KB)。

现在我希望我们需要开始修剪对象图,但我想知道哪些数据位对序列化消息的贡献最大。例如,它是Address个对象的列表,还是InternationalExperience个对象中的一些数据块。

您是否知道将捕获和分析正在发送的XML消息的工具,以便我可以找出占用空间最多的内容?

2 个答案:

答案 0 :(得分:0)

前段时间我写了article for CodeProject,其中我描述了如何构建WCF主机(不是你的问题)并实现IEndpointBehavior来显示消息内容。

也许你可以尝试一下。

答案 1 :(得分:0)

是的,有一个工具。您可以在WCF配置文件工具中启用消息日志记录并检查大消息。 SvcTraceViewer允许您分析跟踪数据。在MSDN中搜索“消息记录”。

相关问题