public DifferenceTraverser(MappingSettings settings, IDifferenceFilter filter) : base(settings) { _filter = filter; }
public DifferenceWriter(TextWriter writer, MappingSettings settings, IDifferenceFilter filter) : base(settings, filter) { _writer = writer; _differences = new List<Difference>(); }
public MappingsTypeMemberTraverser(MappingSettings settings) { Contract.Requires(settings != null); _settings = settings; }
private static ICciDifferenceWriter GetDifferenceWriter(TextWriter writer, IDifferenceFilter filter) { CompositionHost container = GetCompositionHost(); Func<IDifferenceRuleMetadata, bool> ruleFilter = delegate (IDifferenceRuleMetadata ruleMetadata) { if (ruleMetadata.MdilServicingRule && !s_mdil) return false; return true; }; if (s_mdil && s_excludeNonBrowsable) { Trace.TraceWarning("Enforcing MDIL servicing rules and exclusion of non-browsable types are both enabled, but they are not compatible so non-browsable types will not be excluded."); } MappingSettings settings = new MappingSettings(); settings.Comparers = GetComparers(); settings.Filter = GetCciFilter(s_mdil, s_excludeNonBrowsable); settings.DiffFilter = GetDiffFilter(settings.Filter); settings.DiffFactory = new ElementDifferenceFactory(container, ruleFilter); settings.GroupByAssembly = s_groupByAssembly; settings.IncludeForwardedTypes = true; if (filter == null) { filter = new DifferenceFilter<IncompatibleDifference>(); } ICciDifferenceWriter diffWriter = new DifferenceWriter(writer, settings, filter); ExportCciSettings.StaticSettings = settings.TypeComparer; // Always compose the diff writer to allow it to import or provide exports container.SatisfyImports(diffWriter); return diffWriter; }