Intended to provide aspects for both internal and external framework use, the Aspect namespace will rarely provide functionality limited to the namespace itself. Many of the aspects will exist to help dynamically inject other parts of Nvigorate. This is so that by simple including the Aspect namespace, all of Nvigorate's built in aspects will become available via intellisense. This particular decision could change if enough users/contributors object.

The rest of this page is intended to provide summaries of each class. For detailed API, each of the headings will eventually link to upcoming API documentation.


Dynamically applies advice to every function in the class applied to and throws an exception if a null value is provided for any of the arguments. The exception will contain the names of all parameters which were given null values during the call.

The aspect was recently optimized to minimize the amount of code that runs if there were no null values passed to minimize the checking overhead.


Dynamically invokes the LogManager in cases where an exception isn't supressed within a method call. The aspect's attribute can be applied at a class level, which will cause the advice to inject into every method regardless of access level. The attribute can also be applied to specific methods as well which provides more control regarding where the LogManager is invoked.


Dynamically applies advice to the setters of the class's properties in order to provide automated state tracking. This particular aspect will attempt to provide the default implementation of IPersistable interface if it hasn't already been implemented by the class. This currently doesn't work in conjunction with the WCF contract deserilierz for now but is currently being researched.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.