我们有一些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消息的工具,以便我可以找出占用空间最多的内容?
答案 0 :(得分:0)
前段时间我写了article for CodeProject,其中我描述了如何构建WCF主机(不是你的问题)并实现IEndpointBehavior
来显示消息内容。
也许你可以尝试一下。
答案 1 :(得分:0)
是的,有一个工具。您可以在WCF配置文件工具中启用消息日志记录并检查大消息。 SvcTraceViewer允许您分析跟踪数据。在MSDN中搜索“消息记录”。