JakeGinnivan/ApiApprover — pull request #1 by citizenmatt (2014-02-11 23:28:08+00:00)
Title: Rewrite to load assembly with Cecil and output more API details

Uses Cecil to load the assembly/assemblies for Reflection, which doesn't require all references to be loaded.

Outputs more information about the public API, including all public classes, nested classes, interfaces, delegates, events, fields, properties, methods, with full support for generics and attributes everywhere.

A couple of things are fudged (i.e. not valid C#) thanks to the CodeDOM being rubbish, but the output doesn't include method bodies, so it's not valid C# to being with (things like include co- and contra-variance indicators in generic types are also output to type constraints, and attributes on getter and setter properties use a funky [get: Attr] syntax)

Also renamed the example test file, and provided an implementation in xunit that can run with multiple assemblies from a Theory parameterised test. The theory also stops after a configurable number of failures, to stop you getting swamped with file diff windows.