I am having a devil of a time getting this to work...Below follows a sample of a complex type our web services use. The other overloads/parameters passed are primitives, DateTimes and the like. I have some unit test methods that do a one-to-one comparison of the objects that I run when new code is checked-in and those pass just fine. What I need to do now is implement (a class, perhaps?) something that captures the XML passed is the response so I can compare it to that being sent in the request. Also, I need to build in the ability to change the data I am passing (to test negative cases/bad data), and I am completely stumped as to doing this. Any and all help would be appreciated, and I will gladly provide more code upon request.\[code\][System.Diagnostics.DebuggerStepThroughAttribute()][System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")][System.Runtime.Serialization.DataContractAttribute(Name="CrossReferenceCredentials", Namespace="http://www.pse.com/Namespaces/PSE.PSECom.InterfaceWebServices.Customer")][System.SerializableAttribute()]public partial class CrossReferenceCredentials : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; private string CustomerTokenField; private string SecurityIdField; private string UserNameField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { return this.extensionDataField; } set { this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] public string CustomerToken { get { return this.CustomerTokenField; } set { if ((object.ReferenceEquals(this.CustomerTokenField, value) != true)) { this.CustomerTokenField = value; this.RaisePropertyChanged("CustomerToken"); } } } [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] public string SecurityId { get { return this.SecurityIdField; } set { if ((object.ReferenceEquals(this.SecurityIdField, value) != true)) { this.SecurityIdField = value; this.RaisePropertyChanged("SecurityId"); } } } [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] public string UserName { get { return this.UserNameField; } set { if ((object.ReferenceEquals(this.UserNameField, value) != true)) { this.UserNameField = value; this.RaisePropertyChanged("UserName"); } } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } }}\[/code\]