bool IEqualityComparer.Equals(object x, object y) { StateConfiguration stateConfigurationLhs = x as StateConfiguration; if (stateConfigurationLhs == null) { throw new ArgumentNullException("x"); } StateConfiguration stateConfigurationRhs = y as StateConfiguration; if (stateConfigurationRhs == null) { throw new ArgumentNullException("y"); } bool isMatching = stateConfigurationLhs.IsMatching(stateConfigurationRhs); return(isMatching); }