If you are new to dI.Hook, please visit the di.Hook Product Page for Overview, Release Version and Source Code.
Some posts you might want to read would be:
- How to create a HookRepository?
- How to add hooks to HookRepository?
- How to add hooks via configuration file to a HookRepository?
- How to invoke all hooks using dI.Hook?
- How to invoke hooks that satisfy a condition?
So this is the sixth article in the series which will deal with retrieving one or more hook objects instead of just invoking them.
Step 1 – Creating a repository and add hooks into a repository
The first decision in creating a hook repository is to think whether you want to have lazy loading or not. Once you have decided you can go through the steps – Creating a Hook Repository using dI.Hook
Be selective in adding hooks into a repository if you plan to invoke all of them at one go. If you are thinking of manually adding hooks to a repository, would suggest going through – Adding hooks manually into a repository. However, if you are planning to load them through configuration you can read – Loading a configuration set of hooks into repository
Step 2 – Getting a IHook Object from repository
Method One – Getting hook object of a specific type
The above method will return all the hooks that match the type of LogHook. Now say for example, the repository was created using code below
The code hookRepository.Get(typeof(LogHook)); would return the value 2.
Method Two – Getting hook object based on some condition
Using the above method, you can query on the hook collection and returns the hook objects in an IEnumerable collection.
Method Three – Getting all hooks in a repository
This is fairly simple. You can access the collection Hooks in the repository to get all the hooks added in the repository