Frameworks that allow to define custom methods in code (such as webservices, controllers, or functional handlers) may be extended with custom parameter resolvers which allow to inject custom types into method invocations.
By default, the framework will inject
IHandler and the request body as a
Stream. This can
be extended by configuring and passing a custom
InjectionRegistry. The registry
IParameterIParameterInjector instances that define what types are supported
and how they are determined from the current request and environment.
The following example shows how to inject the currently authenticated user into a custom method:
var auth = BasicAuthentication.Create() .Add("my_user", "v3rys4v3p4ssw0rd"); var injectors = Injection.Default() .Add(new UserInjector<BasicAuthenticationUser>()); var content = Inline.Create() .Get((BasicAuthenticationUser user) => user.DisplayName) .Injectors(injectors) .Authentication(auth);