public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = CucumberMessagesConfiguration != null?CucumberMessagesConfiguration.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (int)ConfigSource;
                hashCode = (hashCode * 397) ^ (CustomDependencies != null ? CustomDependencies.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (GeneratorCustomDependencies != null ? GeneratorCustomDependencies.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (FeatureLanguage != null ? FeatureLanguage.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (BindingCulture != null ? BindingCulture.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ StopAtFirstError.GetHashCode();
                hashCode = (hashCode * 397) ^ (int)MissingOrPendingStepsOutcome;
                hashCode = (hashCode * 397) ^ AllowDebugGeneratedFiles.GetHashCode();
                hashCode = (hashCode * 397) ^ AllowRowTests.GetHashCode();
                hashCode = (hashCode * 397) ^ (int)ObsoleteBehavior;
                hashCode = (hashCode * 397) ^ TraceSuccessfulSteps.GetHashCode();
                hashCode = (hashCode * 397) ^ TraceTimings.GetHashCode();
                hashCode = (hashCode * 397) ^ MinTracedDuration.GetHashCode();
                hashCode = (hashCode * 397) ^ (int)StepDefinitionSkeletonStyle;
                hashCode = (hashCode * 397) ^ (AdditionalStepAssemblies != null ? AdditionalStepAssemblies.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ MarkFeaturesParallelizable.GetHashCode();
                hashCode = (hashCode * 397) ^ (SkipParallelizableMarkerForTags != null ? SkipParallelizableMarkerForTags.GetHashCode() : 0);
                return(hashCode);
            }
        }
 public SpecFlowConfiguration(ConfigSource configSource,
                              ContainerRegistrationCollection customDependencies,
                              ContainerRegistrationCollection generatorCustomDependencies,
                              CultureInfo featureLanguage,
                              CultureInfo bindingCulture,
                              bool stopAtFirstError,
                              MissingOrPendingStepsOutcome missingOrPendingStepsOutcome,
                              bool traceSuccessfulSteps,
                              bool traceTimings,
                              TimeSpan minTracedDuration,
                              StepDefinitionSkeletonStyle stepDefinitionSkeletonStyle,
                              List <string> additionalStepAssemblies,
                              bool allowDebugGeneratedFiles,
                              bool allowRowTests,
                              bool markFeaturesParallelizable,
                              string[] skipParallelizableMarkerForTags,
                              ObsoleteBehavior obsoleteBehavior,
                              CucumberMessagesConfiguration cucumberMessagesConfiguration)
 {
     CucumberMessagesConfiguration = cucumberMessagesConfiguration;
     ConfigSource                    = configSource;
     CustomDependencies              = customDependencies;
     GeneratorCustomDependencies     = generatorCustomDependencies;
     FeatureLanguage                 = featureLanguage;
     BindingCulture                  = bindingCulture;
     StopAtFirstError                = stopAtFirstError;
     MissingOrPendingStepsOutcome    = missingOrPendingStepsOutcome;
     TraceSuccessfulSteps            = traceSuccessfulSteps;
     TraceTimings                    = traceTimings;
     MinTracedDuration               = minTracedDuration;
     StepDefinitionSkeletonStyle     = stepDefinitionSkeletonStyle;
     AdditionalStepAssemblies        = additionalStepAssemblies;
     AllowDebugGeneratedFiles        = allowDebugGeneratedFiles;
     AllowRowTests                   = allowRowTests;
     MarkFeaturesParallelizable      = markFeaturesParallelizable;
     SkipParallelizableMarkerForTags = skipParallelizableMarkerForTags;
     ObsoleteBehavior                = obsoleteBehavior;
 }