diff --git a/src/Robotlegs/Bender/Framework/Impl/Guards.cs b/src/Robotlegs/Bender/Framework/Impl/Guards.cs index 4ab987e..cf68e82 100644 --- a/src/Robotlegs/Bender/Framework/Impl/Guards.cs +++ b/src/Robotlegs/Bender/Framework/Impl/Guards.cs @@ -39,6 +39,10 @@ public static bool Approve(IInjector injector, IEnumerable guards) MethodInfo approveMethod = guardInstance.GetType().GetMethod("Approve"); if (approveMethod != null) { + //Before we invoke Approve, inject any needed values + if (injector != null && guardInstance.GetType().IsClass) + injector.InjectInto(guardInstance); + if ((bool)approveMethod.Invoke (guardInstance, null) == false) return false; } diff --git a/src/Robotlegs/Bender/Framework/Impl/Hooks.cs b/src/Robotlegs/Bender/Framework/Impl/Hooks.cs index 88b6cb4..3df20c8 100644 --- a/src/Robotlegs/Bender/Framework/Impl/Hooks.cs +++ b/src/Robotlegs/Bender/Framework/Impl/Hooks.cs @@ -42,7 +42,13 @@ public static void Apply(IInjector injector, IEnumerable hooks) MethodInfo hookMethod = hookInstance.GetType().GetMethod("Hook"); if (hookMethod != null) + { + //Before we invoke Hook, inject any needed values + if (injector != null && hookInstance.GetType().IsClass) + injector.InjectInto(hookInstance); + hookMethod.Invoke (hookInstance, null); + } else throw new Exception ("Invalid hook to apply"); }