Given a large C++/C# codebase, what's the best way to pull out just the public interface from all the code? The intent is to have a more automated way to alert when something public facing has changed. So public classes, method, properties, fields.
The goal would be to just create a file listing the public interface so that, in the future, the process could be repeated and the two files diff'd to see what changed in the public interface.
This way, if someone removes a public method, or changes a property or method signature, that would show up when doing the diff of the before and after results of such a tool.
The implementation is not desired, just the public facing interface. Has anyone had any luck doing this?
One thing I tried was Doxygen, setting it to export to XML, but it included private fields, for example. Is it just a matter of tweaking Doxygen settings correctly or is there a better tool out there to do this?