-
-
Notifications
You must be signed in to change notification settings - Fork 193
/
Copy pathCompareObjects.cs
358 lines (313 loc) · 12.4 KB
/
CompareObjects.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
//Provided for backward compatibility from 1.7.4
#region Includes
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace KellermanSoftware.CompareNetObjects
{
/// <summary>
/// Obsolete Use CompareLogic instead
/// </summary>
[Obsolete("Use CompareLogic instead", true)]
public class CompareObjects
{
#region Class Variables
private readonly CompareLogic _logic;
private ComparisonResult _result;
#endregion
#region Constructor
/// <summary>
/// Obsolete Use CompareLogic instead
/// </summary>
[Obsolete("Use CompareLogic instead", true)]
public CompareObjects()
{
_logic = new CompareLogic();
_result = new ComparisonResult(_logic.Config);
}
#if !NETSTANDARD
/// <summary>
/// Obsolete Use CompareLogic instead
/// </summary>
[Obsolete("Use CompareLogic instead", true)]
public CompareObjects(bool useAppConfigSettings)
{
_logic = new CompareLogic(useAppConfigSettings);
_result = new ComparisonResult(_logic.Config);
}
#endif
#endregion
#region Properties
#if !NETSTANDARD
/// <summary>
/// Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
/// </summary>
[Obsolete("Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare", true)]
public long ElapsedMilliseconds
{
get { return _result.ElapsedMilliseconds; }
}
#endif
/// <summary>
/// Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
/// </summary>
[Obsolete("Use CompareLogic.Config.ShowBreadcrumb instead", true)]
public bool ShowBreadcrumb
{
get { return _logic.Config.ShowBreadcrumb; }
set { _logic.Config.ShowBreadcrumb = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
/// </summary>
[Obsolete("Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead", true)]
public List<string> ElementsToIgnore
{
get { return _logic.Config.MembersToIgnore.ToList(); }
set
{
_logic.Config.MembersToIgnore.Clear();
foreach (var item in value)
{
_logic.Config.MembersToIgnore.Add(item);
}
}
}
/// <summary>
/// Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
/// </summary>
[Obsolete("Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead", true)]
public List<string> ElementsToInclude
{
get { return _logic.Config.MembersToInclude.ToList(); }
set
{
_logic.Config.MembersToInclude.Clear();
foreach (var item in value)
{
_logic.Config.MembersToInclude.Add(item);
}
}
}
//Security restriction in Silverlight prevents getting private properties and fields
#if !NETSTANDARD
/// <summary>
/// Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
/// </summary>
[Obsolete("Use CompareLogic.Config.ComparePrivateProperties instead", true)]
public bool ComparePrivateProperties
{
get { return _logic.Config.ComparePrivateProperties; }
set { _logic.Config.ComparePrivateProperties = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.ComparePrivateFields instead
/// </summary>
[Obsolete("Use CompareLogic.Config.ComparePrivateFields instead", true)]
public bool ComparePrivateFields
{
get { return _logic.Config.ComparePrivateFields; }
set { _logic.Config.ComparePrivateFields = value; }
}
#endif
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareStaticProperties instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareStaticProperties instead", true)]
public bool CompareStaticProperties
{
get { return _logic.Config.CompareStaticProperties; }
set { _logic.Config.CompareStaticProperties = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareStaticFields instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareStaticFields instead", true)]
public bool CompareStaticFields
{
get { return _logic.Config.CompareStaticFields; }
set { _logic.Config.CompareStaticFields = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareChildren instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareChildren instead", true)]
public bool CompareChildren
{
get { return _logic.Config.CompareChildren; }
set { _logic.Config.CompareChildren = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareReadOnly instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareReadOnly instead", true)]
public bool CompareReadOnly
{
get { return _logic.Config.CompareReadOnly; }
set { _logic.Config.CompareReadOnly = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareFields instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareFields instead", true)]
public bool CompareFields
{
get { return _logic.Config.CompareFields; }
set { _logic.Config.CompareFields = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
/// </summary>
[Obsolete("Use CompareLogic.Config.IgnoreCollectionOrder instead", true)]
public bool IgnoreCollectionOrder
{
get { return _logic.Config.IgnoreCollectionOrder; }
set { _logic.Config.IgnoreCollectionOrder = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CompareProperties instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CompareProperties instead", true)]
public bool CompareProperties
{
get { return _logic.Config.CompareProperties; }
set { _logic.Config.CompareProperties = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.MaxDifferences instead
/// </summary>
[Obsolete("Use CompareLogic.Config.MaxDifferences instead", true)]
public int MaxDifferences
{
get { return _logic.Config.MaxDifferences; }
set { _logic.Config.MaxDifferences = value; }
}
/// <summary>
/// Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
/// </summary>
[Obsolete("Use the ComparisonResult.Differences returned from CompareLogic.Compare", true)]
public List<Difference> Differences
{
get { return _result.Differences; }
set { _result.Differences = value; }
}
/// <summary>
/// Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
/// </summary>
[Obsolete("Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare", true)]
public string DifferencesString
{
get { return _result.DifferencesString; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.AutoClearCache instead
/// </summary>
[Obsolete("Use CompareLogic.Config.AutoClearCache instead", true)]
public bool AutoClearCache
{
get { return _logic.Config.AutoClearCache; }
set { _logic.Config.AutoClearCache = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.Caching instead
/// </summary>
[Obsolete("Use CompareLogic.Config.Caching instead", true)]
public bool Caching
{
get { return _logic.Config.Caching; }
set { _logic.Config.Caching = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.AttributesToIgnore instead
/// </summary>
[Obsolete("Use CompareLogic.Config.AttributesToIgnore instead", true)]
public List<Type> AttributesToIgnore
{
get { return _logic.Config.AttributesToIgnore.ToList(); }
set
{
_logic.Config.AttributesToIgnore.Clear();
foreach (var item in value)
{
_logic.Config.AttributesToIgnore.Add(item);
}
}
}
/// <summary>
/// Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
/// </summary>
[Obsolete("Use CompareLogic.Config.IgnoreObjectTypes instead", true)]
public bool IgnoreObjectTypes
{
get { return _logic.Config.IgnoreObjectTypes; }
set { _logic.Config.IgnoreObjectTypes = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CustomComparers instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CustomComparers", true)]
public Func<Type, bool> IsUseCustomTypeComparer { get; set; }
/// <summary>
/// Obsolete Use CompareLogic.Config.CustomComparers instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CustomComparers", true)]
public Action<CompareObjects, object, object, string> CustomComparer { get; set; }
/// <summary>
/// Obsolete Use CompareLogic.Config.ExpectedName instead
/// </summary>
[Obsolete("Use CompareLogic.Config.ExpectedName instead", true)]
public string ExpectedName
{
get { return _logic.Config.ExpectedName; }
set { _logic.Config.ExpectedName = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.ActualName instead
/// </summary>
[Obsolete("Use CompareLogic.Config.ActualName instead", true)]
public string ActualName
{
get { return _logic.Config.ActualName; }
set { _logic.Config.ActualName = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.DifferenceCallback instead
/// </summary>
[Obsolete("Use CompareLogic.Config.DifferenceCallback instead", true)]
public Action<Difference> DifferenceCallback
{
get { return _logic.Config.DifferenceCallback; }
set { _logic.Config.DifferenceCallback = value; }
}
/// <summary>
/// Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
/// </summary>
[Obsolete("Use CompareLogic.Config.CollectionMatchingSpec instead", true)]
public Dictionary<Type, IEnumerable<string>> CollectionMatchingSpec
{
get { return _logic.Config.CollectionMatchingSpec; }
set { _logic.Config.CollectionMatchingSpec = value; }
}
#endregion
#region Methods
/// <summary>
/// Obsolete Use CompareLogic.Compare instead
/// </summary>
[Obsolete("Use CompareLogic.Compare instead", true)]
public bool Compare(object object1, object object2)
{
_result = _logic.Compare(object1, object2);
return _result.AreEqual;
}
/// <summary>
/// Obsolete Use CompareLogic.ClearCache instead
/// </summary>
[Obsolete("Use CompareLogic.ClearCache instead", true)]
public void ClearCache()
{
_logic.ClearCache();
}
#endregion
}
}