Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net40/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net40/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net40/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard1.3/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard1.3/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard1.3/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2232 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net472/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Fisheye: Tag 3113 refers to a dead (removed) revision in file `DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/DgsMStabDamXmlSerializer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net40/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/Deltares.LayerOnSlopeTool.Io.Tests.csproj
===================================================================
diff -u -r3108 -r3113
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/Deltares.LayerOnSlopeTool.Io.Tests.csproj (.../Deltares.LayerOnSlopeTool.Io.Tests.csproj) (revision 3108)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/Deltares.LayerOnSlopeTool.Io.Tests.csproj (.../Deltares.LayerOnSlopeTool.Io.Tests.csproj) (revision 3113)
@@ -34,6 +34,10 @@
MinimumRecommendedRules.ruleset
+
+ ..\packages\CompareNETObjects.4.65.0\lib\net45\KellermanSoftware.Compare-NET-Objects.dll
+ True
+ False..\..\lib\NUnit\nunit.framework.dll
@@ -48,12 +52,20 @@
+
Copying.AGPL.licenseheader
+
+
+
+ {62171502-3f8d-45cb-992a-45c5ac0f8ce6}
+ Deltares.LayerOnSlopeTool.Io
+
+
\ No newline at end of file
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/DgsMStabDamXmlSerializer.cs
===================================================================
diff -u -r3108 -r3113
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/DgsMStabDamXmlSerializer.cs (.../DgsMStabDamXmlSerializer.cs) (revision 3108)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/DgsMStabDamXmlSerializer.cs (.../MStabDamXmlSerializer.cs) (revision 3113)
@@ -19,12 +19,14 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.IO;
+using System.Reflection;
using System.Xml.Serialization;
namespace Deltares.LayerOnSlopeTool.Io
{
- public class DgsMStabDamXmlSerializer
+ public class MStabDamXmlSerializer
{
///
/// Saves the DamMStabDoc as XML.
@@ -33,6 +35,7 @@
/// The DamMStabDoc.
public static void SaveDamMStabDocAsXmlFile(string filename, DamMStabDoc DamMStabDoc)
{
+ DamMStabDoc.FileIdentification = CreateFileIdentification();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(DamMStabDoc));
TextWriter writer = new StreamWriter(filename);
xmlSerializer.Serialize(writer, DamMStabDoc);
@@ -60,6 +63,7 @@
/// xm string
public static string SaveDamMStabDocAsXmlString(DamMStabDoc DamMStabDoc)
{
+ DamMStabDoc.FileIdentification = CreateFileIdentification();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(DamMStabDoc));
TextWriter writer = new StringWriter();
xmlSerializer.Serialize(writer, DamMStabDoc);
@@ -80,6 +84,20 @@
return DamMStabDoc;
}
+ private static DamMStabDocFileIdentification CreateFileIdentification()
+ {
+ DamMStabDocFileIdentification damMStabDocFileIdentification = new DamMStabDocFileIdentification();
+ var hostAssembly = Assembly.GetEntryAssembly();
+ if (hostAssembly == null)
+ {
+ hostAssembly = Assembly.GetExecutingAssembly();
+ }
+ damMStabDocFileIdentification.Application = hostAssembly.GetName().Name;
+ damMStabDocFileIdentification.Version = hostAssembly.GetName().Version.ToString();
+ damMStabDocFileIdentification.Created = DateTime.Now.ToShortDateString() + " "+ DateTime.Now.ToShortTimeString();
+ damMStabDocFileIdentification.Company = "Deltares";
+ return damMStabDocFileIdentification;
+ }
}
}
\ No newline at end of file
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net472/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net472/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net472/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/Deltares.LayerOnSlopeTool.Io.csproj
===================================================================
diff -u -r3108 -r3113
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/Deltares.LayerOnSlopeTool.Io.csproj (.../Deltares.LayerOnSlopeTool.Io.csproj) (revision 3108)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/Deltares.LayerOnSlopeTool.Io.csproj (.../Deltares.LayerOnSlopeTool.Io.csproj) (revision 3113)
@@ -45,7 +45,7 @@
-
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net471/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net471/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net471/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net46/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard2.0/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard2.0/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard2.0/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2289 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net46/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net46/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net46/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net451/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net451/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net451/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/CompareNETObjects.4.65.0.nupkg
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net451/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net47/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/MStabDamXmlSerializerTests.cs
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/MStabDamXmlSerializerTests.cs (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/MStabDamXmlSerializerTests.cs (revision 3113)
@@ -0,0 +1,53 @@
+// Copyright (C) Stichting Deltares 2020. All rights reserved.
+//
+// This file is part of the Dam Engine.
+//
+// The Dam Engine is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using KellermanSoftware.CompareNetObjects;
+using NUnit.Framework;
+
+namespace Deltares.LayerOnSlopeTool.Io.Tests
+{
+ public class MStabDamXmlSerializerTests
+ {
+ [Test]
+ public void CanReadWriteDamMStabDocObject()
+ {
+ const string filename = "DamMStabDoc.xml";
+ DamMStabDoc sourceDamMStabDoc = CreatePopulatedDamMStabDoc();
+ MStabDamXmlSerializer.SaveDamMStabDocAsXmlFile(filename, sourceDamMStabDoc);
+ DamMStabDoc destinationDamMStabDoc = MStabDamXmlSerializer.LoadDamMStabDocFromXmlFile(filename);
+ CompareDamMStabDoc(sourceDamMStabDoc, destinationDamMStabDoc);
+ }
+
+ private DamMStabDoc CreatePopulatedDamMStabDoc()
+ {
+ DamMStabDoc DamMStabDoc = new DamMStabDoc();
+ return DamMStabDoc;
+ }
+
+ private void CompareDamMStabDoc(DamMStabDoc expected, DamMStabDoc actual)
+ {
+ var compare = new CompareLogic { Config = { MaxDifferences = 100 } };
+ var result = compare.Compare(expected, actual);
+ Assert.AreEqual(0, result.Differences.Count, "Differences found read/write DamMStabDoc object");
+ }
+
+ }
+}
\ No newline at end of file
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard2.0/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net452/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net452/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net452/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net45/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net452/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/.signature.p7s
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net48/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/netstandard1.3/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net471/KellermanSoftware.Compare-NET-Objects.dll
===================================================================
diff -u
Binary files differ
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net47/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net47/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net47/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net48/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net48/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net48/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/packages.config
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/packages.config (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/packages.config (revision 3113)
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/.nupkg.metadata
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/.nupkg.metadata (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/.nupkg.metadata (revision 3113)
@@ -0,0 +1,4 @@
+{
+ "version": 1,
+ "contentHash": "7WXINqeaL/NN+MCjm8IeBBCElPxxMi+tejuBZqAWXFF5qxhI1z4dya8R66mpzO+NMoHGy41Egp1Na1CR95UqpQ=="
+}
\ No newline at end of file
Index: DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net45/KellermanSoftware.Compare-NET-Objects.xml
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net45/KellermanSoftware.Compare-NET-Objects.xml (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/packages/CompareNETObjects.4.65.0/lib/net45/KellermanSoftware.Compare-NET-Objects.xml (revision 3113)
@@ -0,0 +1,2538 @@
+
+
+
+ KellermanSoftware.Compare-NET-Objects
+
+
+
+
+ Cache for properties, fields, and methods to speed up reflection
+
+
+
+
+ Reflection Cache for property info
+
+
+
+
+ Reflection Cache for field info
+
+
+
+
+ Reflection Cache for methods
+
+
+
+
+ Static constructor
+
+
+
+
+ Clear the cache
+
+
+
+
+ Get a list of the fields within a type
+
+
+
+
+
+
+
+ Get the value of a property
+
+
+
+
+
+
+
+
+
+ Get a list of the properties in a type
+
+
+
+
+
+
+
+ Get a method by name
+
+
+
+
+
+
+
+ Get the cached methods for a type
+
+
+
+
+
+
+ CompareException with a Result Property
+
+
+
+
+ CompareException Constructor
+
+
+
+
+
+
+ The comparison Result
+
+
+
+
+ A set of BDD style comparison extensions for use with Testing Frameworks
+
+
+
+
+ Alter the configuration for the comparison
+
+
+
+
+ Throws a CompareException if the classes are not equal
+
+
+
+
+
+
+
+
+ Throws a CompareException if the classes are equal
+
+
+
+
+
+
+
+
+ Class that allows comparison of two objects of the same type to each other. Supports classes, lists, arrays, dictionaries, child comparison and more.
+
+
+ CompareLogic compareLogic = new CompareLogic();
+
+ Person person1 = new Person();
+ person1.DateCreated = DateTime.Now;
+ person1.Name = "Greg";
+
+ Person person2 = new Person();
+ person2.Name = "John";
+ person2.DateCreated = person1.DateCreated;
+
+ ComparisonResult result = compareLogic.Compare(person1, person2);
+
+ if (!result.AreEqual)
+ Console.WriteLine(result.DifferencesString);
+
+
+
+
+
+ The default configuration
+
+
+
+
+ Set up defaults for the comparison
+
+
+
+
+ Pass in the configuration
+
+
+
+
+
+ Set up defaults for the comparison
+
+ If true, use settings from the app.config
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Save the current configuration to the passed stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Load the current configuration from a json stream
+
+
+
+
+
+ Save the current configuration to a json file
+
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use CompareLogic instead
+
+
+
+
+ Obsolete Use the ComparisonResult.ElapsedMilliseconds returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.ShowBreadcrumb instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToIgnore for members or CompareLogic.Config.ClassTypesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MembersToInclude or CompareLogic.Config.ClassTypesToInclude instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ComparePrivateFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareStaticFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareChildren instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareReadOnly instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareFields instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreCollectionOrder instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CompareProperties instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.MaxDifferences instead
+
+
+
+
+ Obsolete Use the ComparisonResult.Differences returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use the ComparisonResult.DifferencesString returned from CompareLogic.Compare
+
+
+
+
+ Obsolete Use CompareLogic.Config.AutoClearCache instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.Caching instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.AttributesToIgnore instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.IgnoreObjectTypes instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CustomComparers instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ExpectedName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.ActualName instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.DifferenceCallback instead
+
+
+
+
+ Obsolete Use CompareLogic.Config.CollectionMatchingSpec instead
+
+
+
+
+ Obsolete Use CompareLogic.Compare instead
+
+
+
+
+ Obsolete Use CompareLogic.ClearCache instead
+
+
+
+
+ Compare Parameters
+
+
+
+
+ The configuration settings
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ Details about the comparison
+
+
+
+
+ A reference to the parent object1
+
+
+
+
+ A reference to the parent object2
+
+
+
+
+ The first object to be compared
+
+
+
+
+ The second object to be compared
+
+
+
+
+ The breadcrumb in the tree
+
+
+
+
+ Custom comparer used to assert Object1
+
+
+
+
+ Configuration
+
+
+
+
+ Default Constructor
+
+
+
+
+ When comparing strings or StringBuilder types, perform a case sensitive comparison. The default is true.
+
+
+
+
+ Ignore exceptions when objects are disposed
+
+
+
+
+ Ignore millisecond differences between DateTime values or DateTimeOffset values. The default is 0 (any time difference will be shown).
+
+
+
+
+ When comparing DateTimeOffsets, offsets will be compared as well as the UtcDateTimes. The default is false.
+
+
+
+
+ When comparing DateTimeOffsets, timezone difference will be ignored by changing both object to their UTC equivalent value. The default is false.
+
+
+
+
+ When comparing struct, the depth to compare for children. The default is 2, the max is 5
+
+
+
+
+ If true, unknown object types will be ignored instead of throwing an exception. The default is false.
+
+
+
+
+ If true, invalid indexers will be skipped. The default is false.
+
+
+
+
+ If a class implements an interface then only members of the interface will be compared. The default is all members are compared.
+
+
+
+
+ Show breadcrumb at each stage of the comparision. The default is false.
+ This is useful for debugging deep object graphs.
+
+
+
+
+ A list of class types to be ignored in the comparison. The default is to compare all class types.
+
+
+
+
+ Only these class types will be compared. The default is to compare all class types.
+
+ If you specify a class type here no other class types will be compared unless it is in this list.
+
+
+
+ A list of types to be ignored in the comparison. The default is to compare all types. A typical thing to not compare are GUIDs
+
+
+
+
+ Only these types will be compared. The default is to compare all types.
+
+ If you specify a type here no others will be compared unless it is in this list. You must specify ALL Types that you want to compare.
+
+
+
+ Ignore Data Table Names, Data Table Column Names, properties, or fields by name during the comparison. Case sensitive. The default is to compare all members.
+
+ MembersToIgnore.Add("CreditCardNumber");
+ MembersToIgnore.Add("Invoice.InvoiceGuid");
+ MembersToIgnore.Add("*Id");
+
+
+
+
+ Ignore property during the comparison. Property is specific to the generic type.
+
+
+
+
+ IgnoreProperty<Person>(x => x.Name)
+
+
+
+ Only compare elements by name for Data Table Names, Data Table Column Names, properties and fields. Case sensitive. The default is to compare all members.
+
+ MembersToInclude.Add("FirstName")
+
+
+
+ If true, private properties and fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, private fields will be compared. The default is false. Silverlight and WinRT restricts access to private variables.
+
+
+
+
+ If true, static properties will be compared. The default is true.
+
+
+
+
+ If true, static fields will be compared. The default is true.
+
+
+
+
+ If true, child objects will be compared. The default is true.
+ If false, and a list or array is compared list items will be compared but not their children.
+
+
+
+
+ If true, compare read only properties (only the getter is implemented). The default is true.
+
+
+
+
+ If true, compare fields of a class (see also CompareProperties). The default is true.
+
+
+
+
+ If true, compare each item within a collection to every item in the other. The default is false. WARNING: setting this to true significantly impacts performance.
+
+
+
+
+ If true, compare properties of a class (see also CompareFields). The default is true.
+
+
+
+
+ The maximum number of differences to detect. The default is 1 for performance reasons.
+
+
+
+
+ The maximum number of differences to detect when comparing byte arrays. The default is 1.
+
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared after each compare. Set to false to keep the cache for multiple compares.
+
+
+
+
+
+ By default properties and fields for types are cached for each compare. By default this cache is cleared after each compare.
+
+
+
+
+
+ A list of attributes to ignore a class, property or field
+
+ AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
+
+
+
+ If true, objects will be compared ignore their type diferences. The default is false.
+
+
+
+
+ In the differences string, this is the name for expected name. The default is: Expected
+
+
+
+
+ In the differences string, this is the name for the actual name. The default is: Actual
+
+
+
+
+ Callback invoked each time the comparer finds a difference. The default is no call back.
+
+
+
+
+ Sometimes one wants to match items between collections by some key first, and then
+ compare the matched objects. Without this, the comparer basically says there is no
+ match in collection B for any given item in collection A that doesn't Compare with a result of true.
+ The results of this aren't particularly useful for object graphs that are mostly the same, but not quite.
+ Enter CollectionMatchingSpec
+
+ The enumerable strings should be property (not field, for now, to keep it simple) names of the
+ Type when encountered that will be used for matching
+
+ You can use complex type properties, too, as part of the key to match. To match on all props/fields on
+ such a matching key, Don't set this property (default comparer behavior)
+ NOTE: types are looked up as exact. e.g. if foo is an entry in the dictionary and bar is a
+ sub-class of foo, upon encountering a bar type, the comparer will not find the entry of foo
+
+
+
+
+ A list of custom comparers that take priority over the built in comparers
+
+
+
+
+ A list of custom property comparers that take priority over the built in and type comparers
+
+
+
+
+ If true, string.empty and null will be treated as equal for Strings and String Builder. The default is false.
+
+
+
+
+ If true, leading and trailing whitespaces will be ignored for Strings and String Builder. The default is false.
+
+
+
+
+ The precision to compare double values. The default is 0.
+
+
+
+
+ The precision to compare decimal values. The default is 0.
+
+
+
+
+ Backing member that supports
+
+
+
+
+ Computed value of whether or not exclusion list has wildcards.
+
+
+
+
+ Reset the configuration to the default values
+
+
+
+
+ Details about the comparison
+
+
+
+
+ Keep track of parent objects in the object hierarchy
+
+
+
+
+ Set the configuration for the comparison
+
+
+
+
+
+ Keep track of the depth of structs being compared. Used with ComparisonConfig.MaxStructDepth
+
+
+
+
+ Configuration
+
+
+
+
+ Used to time how long the comparison took
+
+
+
+
+ The amount of time in milliseconds it took for the comparison
+
+
+
+
+ The differences found during the compare
+
+
+
+
+ The differences found in a string suitable for a textbox
+
+
+
+
+ Returns true if the objects are equal
+
+
+
+
+ Returns true if the number of differences has reached the maximum
+
+
+
+
+ Add parent, handle references count
+
+
+
+
+
+ Remove parent, handle references count
+
+
+
+
+
+ Returns true if we have encountered this parent before
+
+
+
+
+
+
+ Get custom validator based on property
+
+
+
+
+ Get validator for a member of an expando object
+
+
+
+
+
+
+
+
+ Get validator for a member
+
+
+
+
+
+
+
+
+ Detailed information about the difference
+
+
+
+
+ Name of Expected Object
+
+
+
+
+ Name of Actual Object
+
+
+
+
+ Returns the parent property name
+
+
+
+
+ The breadcrumb of the property leading up to the value
+
+
+
+
+ The child property name
+
+
+
+
+ Object1 Value as a string
+
+
+
+
+ Object2 Value as a string
+
+
+
+
+ The type of the first object
+
+
+
+
+ The type of the second object
+
+
+
+
+ A reference to the parent of object1
+
+
+
+
+ A reference to the parent of object2
+
+
+
+
+ Object1 as a reference
+
+
+
+
+ Object2 as a reference
+
+
+
+
+ Prefix to put on the beginning of the message
+
+
+
+
+ Item and property name only
+
+
+
+
+
+ The type and index of what is compared
+
+
+
+
+
+ Nicely formatted string
+
+
+
+
+
+ Exclude types depending upon the configuration
+
+
+
+
+ Exclude a member of an expando object
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be excluded
+
+
+
+
+
+
+
+
+ Returns true if the property or field should be exluded by wilcard
+
+
+
+
+
+
+
+ Check if the class should be exluded by Attribute
+
+
+
+
+
+
+
+
+ Check if the class type should be excluded based on the configuration
+
+
+
+
+
+
+
+
+ Check if any type has attributes that should be bypassed
+
+
+
+
+
+ Helper methods for files and directories
+
+
+
+
+ Get the current directory of the executing assembly
+
+
+
+
+
+ Ensure the passed string ends with a directory separator character unless the string is blank.
+
+ The string to append the backslash to.
+ String with a "/" on the end
+
+
+
+ Config object for HtmlReport
+
+
+
+
+ The header value of the Bread Crumb column
+
+
+
+
+ The header value of the Expected column
+
+
+
+
+ The header value of the Actual column
+
+
+
+
+ If true, the output will be complete html, if false, it will just be the table
+
+
+
+
+ Setting this will overwrite the default html header (html, head, body tags)
+
+
+
+
+ Setting this will overwrite the default html footer (closing body, html tags)
+
+
+
+
+ The title of the page - only visible if GenerateFullHtml == true
+
+
+
+
+ The CSS Style of the page - only used if the GenerateFullHtml == true
+
+
+
+
+ Default constructor, sets default values
+
+
+
+
+ Appends to the existing Style value
+
+ Any css to append
+
+
+
+ Replaces the existing Style value
+
+ Any css to use
+
+
+
+ Interface for mocking
+
+
+
+
+ The default configuration
+
+
+
+
+ Compare two objects of the same type to each other.
+
+
+ Check the Differences or DifferencesString Properties for the differences.
+ Default MaxDifferences is 1 for performance
+
+ The expected object value to compare
+ The actual object value to compare
+ True if they are equal
+
+
+
+ Reflection properties and fields are cached. By default this cache is cleared automatically after each compare.
+
+
+
+
+ Logic for comparing lists that are out of order based on a key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The root comparer.
+
+
+
+ Compares the enumerators and ignores the order
+
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+
+
+ Implements methods to support the comparison of objects for equality, in a customizable fashion.
+ The comparison object type.
+
+
+ Defines the configuration and logic by which Equals comparisons will be performed.
+
+
+ Gets or sets a value indicating whether the base object hashes should be used.
+
+ False by default to allow CompareLogic to evaluate equivalence of otherwise instance-sensitive hashing objects.
+ NOTE: Any object which doesn't override GetHashCode will behave this way, so this property should generally be left false.
+
+
+
+ Compare two objects of the same type to each other.
+ True if the objects are considered equivalent, according to the current CompareLogic.
+
+
+ Retrieves the hash of the specified object.
+ The object to retrieve a hash for.
+
+
+
+ Helper methods for processes
+
+
+
+
+ Execute an external program.
+
+ Path and filename of the executable.
+ Arguments to pass to the executable.
+ Window style for the process (hidden, minimized, maximized, etc).
+ Wait for the process to finish.
+ Exit Code
+
+
+
+ Generic class for holding a Property Info, or Dynamic Info
+
+
+
+
+ Constructor
+
+
+
+
+ If true, this is a dynamic property
+
+
+
+
+ Name of the property
+
+
+
+
+ Value of the property
+
+
+
+
+ Let me reflect on this day
+
+
+
+
+ The type of the parent
+
+
+
+
+ The type of the property
+
+
+
+
+ If the property can be read from
+
+
+
+
+ If the property can be written to
+
+
+
+
+ Indexers for the property
+
+
+
+
+ Reference to the property info
+
+
+
+
+ Abstract Base Duel File Report that has default Output
+
+
+
+
+ Create two difference files and compare in WinMerge
+
+ A list of the differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch application to compare two files
+
+ The path for the expected file results
+ The path for the actual file results
+
+
+
+ Output files and launch Beyond Compare
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the Beyond Compare executable
+
+ The path or null if not found
+
+
+
+ Create a CSV file of the differences and launch the default CSV handler (usually Excel)
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application associated with CSV files
+
+ The differences file
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Create an HTML file of the differences and launch the default HTML handler
+
+
+
+
+ Default constructor, sets up Config object
+
+
+
+
+ HtmlReport Configuration
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Launch the WinMerge
+
+ The differences file
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ An output stream
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Escape special characters
+
+
+
+
+
+
+ Define a dual file report like Beyond Compare, WinMerge etc.
+
+
+
+
+ Output the differences to two files
+
+ A list of differences
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Launch the comparison application
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Defines a Single File Report
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Report for showing differences to an end user
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The text in between the values. Defaults to: CHANGED TO ->
+
+
+
+
+ Output the differences to a file
+
+ A list of differences
+ The file path
+
+
+
+ Output the differences to a stream
+
+ A list of differences
+ Where to write to
+
+
+
+ Output the differences to a string
+
+ A list of differences
+ A string
+
+
+
+ Launch the application for showing the file
+
+ The file path
+
+
+
+ Output files and launch WinMerge
+
+
+
+
+ Launch the WinMerge
+
+ The path to write the expected results
+ The path to write the actual results
+
+
+
+ Find the path of the WinMerge executable
+
+ The path or null if not found
+
+
+
+ The base comparer which contains all the type comparers
+
+
+
+
+ A list of the type comparers
+
+
+
+
+ Compare two objects
+
+
+
+
+ Factory to create a root comparer
+
+
+
+
+ Get the current root comparer
+
+
+
+
+
+ Methods for manipulating strings
+
+
+
+
+ Insert spaces into a string
+
+
+ OrderDetails = Order Details
+ 10Net30 = 10 Net 30
+ FTPHost = FTP Host
+
+
+
+
+
+
+ Extensions for Type to provide backward compatibility between latest and older .net Framework APIs.
+
+
+
+
+ Function to provide compilation compatibility between older code and newer style.
+
+ The type.
+ The type.
+
+
+
+ Common functionality for all Comparers
+
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ The comparison configuration
+ The existing breadcrumb
+ The property or field name
+ Extra information to output after the name
+ The index for an array, list, or row
+ The new breadcrumb
+
+
+
+ Add a breadcrumb to an existing breadcrumb
+
+ Comparison configuration
+ The existing breadcrumb
+ The field or property name
+ Extra information to append after the name
+ The index if it is an array, list, row etc.
+ The new breadcrumb
+
+
+
+ Add a difference for the current parameters
+
+
+
+
+
+ Add a difference to the result
+
+ The difference to add to the result
+ The comparison result
+
+
+
+ Convert an object to a nicely formatted string
+
+
+
+
+
+
+ Common functionality for all Type Comparers
+
+
+
+
+ A reference to the root comparer as newed up by the RootComparerFactory
+
+
+
+
+ Protected constructor that references the root comparer
+
+
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare the two objects
+
+
+
+
+ Compare two byte arrays
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if it is a byte array; otherwise, false.
+
+
+
+ Compare two byte array objects
+
+
+
+
+ Compare two objects of type class
+
+
+
+
+ Constructor for the class comparer
+
+ The root comparer instantiated by the RootComparerFactory
+
+
+
+ Returns true if the both objects are a class
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two classes
+
+
+
+
+ Logic to compare two collections of different types.
+
+
+
+
+ The main constructor.
+
+
+
+
+ Returns true if both objects are collections.
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two collections.
+
+
+
+
+ Compare two generic objects
+
+ The type of the first object
+ The type of the second object
+
+
+
+ Method to evaluate the results, return true if two objects are equal
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Constructor that takes a default root comparer
+
+
+
+
+ Constructor that takes a the predication with a default root comparer
+
+ A function to determine if two objects are equal
+
+
+
+ Constructor that takes a the predication with a root comparer
+
+ The root comparer
+ Method to determine if two objects are equal
+
+
+
+ Compare two objects
+
+
+
+
+ Returns true if both objects match their types
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare a data column
+
+
+
+
+ Default constructor
+
+
+
+
+
+ Returns true if both types compared are a DataColumn
+
+
+
+
+
+
+
+ Compare a Data Column
+
+
+
+
+
+ Compare all columns in a data row
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if this is a DataRow
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data rows
+
+
+
+
+ Compare all tables and all rows in all tables
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are data sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two data sets
+
+
+
+
+ Compare all rows in a data table
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type DataTable
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two datatables
+
+
+
+
+ Compare dates with the option to ignore based on milliseconds
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTime
+
+
+
+
+
+
+
+ Compare two DateTime variables
+
+
+
+
+
+ Compare DateTimeOffsets with the ability to ignore millisecond differences
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are DateTimeOffset
+
+
+
+
+
+
+
+ Compare two DateTimeOffset
+
+
+
+
+
+ Compare Decimal values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two decimals
+
+
+
+
+
+ Logic to compare two dictionaries
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are dictionaries
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two dictionaries
+
+
+
+
+ Compare Double values with the ability to specify the precision
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are double
+
+
+
+
+
+
+
+ Compare two doubles
+
+
+
+
+
+ Logic to compare to enum values
+
+
+
+
+ Constructor with a default root comparer
+
+
+
+
+
+ Returns true if both objects are of type enum
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two enums
+
+
+
+
+ Logic to compare two LINQ enumerators
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if either object is of type LINQ Enumerator
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement LINQ Enumerator
+
+
+
+
+ Compare all the fields of a class or struct (Note this derrives from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor with a root comparer
+
+
+
+
+
+ Compare the fields of a class
+
+
+
+
+ Class FontDescriptorComparer.
+
+
+
+
+ Protected constructor that references the root comparer
+
+ The root comparer.
+
+
+
+ If true the type comparer will handle the comparison for the type
+
+ The type of the first object
+ The type of the second object
+ true if [is type match] [the specified type1]; otherwise, false.
+
+
+
+
+ Compare the two fonts
+
+
+
+
+ Logic to compare two hash sets
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are hash sets
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two hash sets
+
+
+
+
+ Compares System.Collections.Immutable.ImmutableArray
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both are immutable arrays with same generic argument type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compares two immutable arrays
+
+
+
+
+ Logic to compare an integer indexer (Note, inherits from BaseComparer, not TypeComparer)
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare an integer indexer
+
+
+
+
+ Logic to compare two IP End Points
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are an IP End Point
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two IP End Points
+
+
+
+
+ Compare objects that implement IList
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects implement IList
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two objects that implement IList
+
+
+
+
+ Logic to compare to pointers
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a pointer
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two pointers
+
+
+
+
+ Compare two properties (Note inherits from BaseComparer instead of TypeComparer
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Compare the properties of a class
+
+
+
+
+ Compare a single property of a class
+
+
+
+
+
+
+
+ Logic to compare two runtime types
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are of type runtme type
+
+
+
+
+
+
+
+ Compare two runtime types
+
+
+
+
+ Compare primitive types (long, int, short, byte etc.) and DateTime, decimal, and Guid
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if the type is a simple type
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two simple types
+
+
+
+
+ Compare two StringBuilders
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a StringBuilder
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two string builders
+
+
+
+
+
+ Compare two strings
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are a string or if one is a string and one is a a null
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two strings
+
+
+
+
+ Compare two structs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are of type struct
+
+
+
+
+
+
+
+ Compare two structs
+
+
+
+
+ Logic to compare two timespans
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both objects are timespans
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two timespans
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Constructor that takes a root comparer
+
+
+
+
+
+ Returns true if both types are a URI
+
+ The type of the first object
+ The type of the second object
+
+
+
+
+ Compare two URIs
+
+
+
+
+ Methods for detecting
+
+
+
+
+ Returns true if it is a dynamic object
+
+
+
+
+
+
+ Determines whether the specified object is an expando object
+
+ The object value.
+
+
+
+ Returns true if it is a byte array
+
+
+
+
+ Returns true if the type can have children
+
+
+
+
+
+
+ True if the type is an array
+
+
+
+
+
+
+ True if the type is an System.Collections.Immutable.ImmutableArray
+
+
+
+
+
+
+ Returns true if it is a struct
+
+
+
+
+
+
+ Returns true if the type is a timespan
+
+
+
+
+
+
+ Return true if the type is a class
+
+
+
+
+
+
+ Return true if the type is an interface
+
+
+
+
+
+
+ Return true if the type is a URI
+
+
+
+
+
+
+ Return true if the type is a pointer
+
+
+
+
+
+
+ Return true if the type is an enum
+
+
+
+
+
+
+ Return true if the type is a dictionary
+
+
+
+
+
+
+ Return true if the type is a hashset
+
+
+
+
+
+
+ Return true if the type is a List
+
+
+
+
+
+
+ Return true if the type is an Enumerable
+
+
+
+
+
+
+ Return true if the type is a Double
+
+
+
+
+
+
+ Return true if the type is a Decimal
+
+
+
+
+
+
+ Return true if the type is a Decimal or Nullable Decimal
+
+
+
+
+
+
+ Return true if the type is a DateTime
+
+
+
+
+
+
+ Return true if the type is a DateTimeOffset
+
+
+
+
+
+ Return true if the type is a StringBuilder
+
+
+
+
+
+
+ Return true if the type is a string
+
+
+
+
+
+
+ Return true if the type is a primitive type, date, decimal, string, or GUID
+
+
+
+
+
+
+ Returns true if the Type is a Runtime type
+
+
+
+
+
+
+ Returns true if the type is an IPEndPoint
+
+
+
+
+
+
+ Returns true if the type is a dataset
+
+
+
+
+
+
+ Returns true if the type is a data table
+
+
+
+
+
+
+ Returns true if the type is a data row
+
+
+
+
+
+
+ Returns true if the Type is Data Column
+
+
+
+
+
+
+ Returns true if the type is a font
+
+ The type1.
+
+
+
+ Used internally to verify the config settings before comparing
+
+
+
+
+ Verifies the specified configuration.
+
+ The configuration.
+
+
+
+ Verifies the collection matching spec.
+
+ The configuration.
+
+
+
+
+
+ HTML-encodes a string and returns the encoded string.
+
+ The text string to encode.
+ The HTML-encoded text.
+
+
+