Rather than AOP interception techniques, FireWeaver allows for complete replacement of entire classes in assemblies. Using IL Weaving provided by Mono.Cecil, FireWeaver detects attributed classes and uses those classes as replacements for specified types.
Framework for object interception and replacement
With FireWeaver, a developer can instrument an assembly and swap out any class construction and method calls with another from an external assembly. Any class can be swapped as long as the method names and signatures match (IE: super duck typing).
Why do this? The usages of such a utility is limited, but can allow for unit testing classes by replacing the calls a class may make with calls to a stubbed out or mocked object. Commonly, such interactions would be separated by interfaces. This utility may
allow a developer to avoid muddling the code with extra interfaces just to expose an area for test.
This project may allow for frameworks to be developed for testing purposes. One such project that will follow is the capability to swap out the File system interface in C#, allowing the developer to use an in memory file system instead of the hard disk for
unit tests. Other possibilities may arise as the project continues.