Beispiel #1
0
 public static void Visit(this AssemblyChanges changes, params IChangeVisitor[] visitors)
 {
     foreach (IChangeVisitor changeVisitor in visitors)
     {
         changeVisitor.Visit(changes);
     }
 }
Beispiel #2
0
        protected void ApiChangesDetermined()
        {
            using (var assembly1Stream = File.Open(OldAssemblyPath, FileMode.Open))
                using (var assembly2Stream = File.Open(NewAssemblyPath, FileMode.Open))
                {
                    var changeBuilder = new AssemblyChangesBuilder();

                    AssemblyChanges = changeBuilder.GetChanges(assembly1Stream, assembly2Stream);
                }
        }
Beispiel #3
0
        public virtual void Visit(AssemblyChanges assemblyChanges)
        {
            var context = new ModuleChangeContext(assemblyChanges);

            foreach (var moduleChange in assemblyChanges.ModuleChanges)
            {
                if (Visit(moduleChange, context) != VisitResult.Continue)
                {
                    return;
                }
            }
        }
Beispiel #4
0
        private static IEnumerable <BreakingChange> CompareAssemblies(string oldAssemblyPath, string newAssemblyPath)
        {
            using (var oldAssembly = File.Open(oldAssemblyPath, FileMode.Open))
                using (var newAssembly = File.Open(newAssemblyPath, FileMode.Open))
                {
                    var             changesBuilder = new AssemblyChangesBuilder();
                    AssemblyChanges changes        = changesBuilder.GetChanges(oldAssembly, newAssembly);

                    var breakingChangeVisitor = new BreakingChangeVisitor();
                    changes.Visit(breakingChangeVisitor);

                    return(breakingChangeVisitor.BreakingChanges);
                }
        }
Beispiel #5
0
 public ModuleChangeContext(AssemblyChanges assemblyChanges)
 {
     _assemblyChanges = assemblyChanges;
 }
 public ParameterChangeContext(AssemblyChanges assemblyChanges, ModuleChange parentModuleChange, TypeChange parentTypeChange, MethodGroupChange parentMethodGroupChange, MethodChange parentMethodChange)
     : base(assemblyChanges, parentModuleChange, parentTypeChange, parentMethodGroupChange)
 {
     _parentMethodChange = parentMethodChange;
 }
Beispiel #7
0
 public TypeChangeContext(AssemblyChanges assemblyChanges, ModuleChange parentModuleChange)
     : base(assemblyChanges)
 {
     _parentModuleChange = parentModuleChange;
 }