우리는 WCF 서비스 (wsHttpBinding
사용)에 의해 노출되고 XML로 직렬화되는 개체가 있습니다. 당신이 볼 수 있듯이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 레코드는 괜찮지 만 매우 큰 일련 화 메시지 (예 : 500KB 이상)로 변환되는 메시지가 있습니다.
이제 객체 그래프를 정리해야 할 필요가 있다고 생각하지만, 어떤 데이터 비트가 직렬화 된 메시지에 가장 많이 기여하는지 확인하고 싶습니다. 예를 들어 Address
개체의 목록입니까, 아니면 InternationalExperience
개체의 일부 데이터 조각입니까?
보내는 공간의 XML 메시지를 캡처하고 분석하여 가장 많은 공간을 차지하는 도구를 알 수 있습니까?
제안 해 주셔서 감사합니다.하지만 제 질문은 메시지를받는 방법에 관한 것이 아닙니다. WCF 추적을 통해이 작업을 수행 할 수도 있고 DataContractSerializer를로드하고 MemoryStream에 직렬화 한 다음 디스크에 쓸 수도 있습니다. 캡쳐 된 XML 분석에 대한 조언을 찾고 있습니다. –