>>>public class ReportColumn >>>{ >>> public string ColumnName { get; set; } >>> public object OriginalValue { get; set; } >>> public object ChangedValue { get; set; } >>> public bool IsChanged { get; private set; } >>> >>> public void SetIsChanged() >>> { >>> IsChanged = false; >>> >>> PropertyInfo[] sourceProperties = OriginalValue.GetType().GetProperties(); >>> foreach (PropertyInfo pi in sourceProperties) >>> { >>> object originalProperty = OriginalValue.GetType().GetProperty(pi.Name).GetValue(this, null); >>> object changedProperty = ChangedValue.GetType().GetProperty(pi.Name).GetValue(comparisonObject, null); >>> >>> IsChanged = (originalProperty != changedProperty); >>> >>> if (IsChanged) >>> { >>> break; >>> } >>> } >>> } >>>} >>> >>>>>>