nspectre 1.0.0 released
nspectre 1.0.0 has been released. This version has a new type of simple specification which allows you to call functions. Being able to call existing functions means not having to dabble in template language and being able to unit test the existing functions. If you want to create a function for use as a specification it needs to be declared public and must return IFunctionResult (there’s an implementation of IFunctionResult in nspectre if you want to use it – just remember that passing an error to the constructor will automatically set the outcome to false, otherwise the outcome will be true.) Bindings are used to pass arguments to the function – and if you declare Context or ILogger as arguments, they will be automatically wired up without you having to lift a finger.
In addition to this new feature, there’s also an enhancement to the way assemblies are referenced. Some users were having an issue with web applications at runtime getting references to assemblies. So the new version not only adds references to assemblies containing candidate types or existing functions, it also adds references to any assemblies these containing assemblies reference.
Go and try it out. The example project that comes with the source project is a great place to start. Download it here.