title: Variation on Service Locator
body: <pre><code>IModificationRequst&lt;Employee&gt; req = new ModificationRequst();
  Locator.Instance.GetService&lt;IModificationRequstHandler&lt;Employee&gt;&gt;().Handle(req);
  </code></pre>
  
  <p>I have a service locator that locates services that returns instances of objects implementing IModificationRequstHandler.</p>
  
  <p>I am trying to modify it to rather than returning a IModificationRequstHandler implementer, it is just internally finds the service and invokes it's handler method, so the above 2 lines would look like this instead:</p>
  
  <pre><code>IModificationRequst&lt;Employee&gt; req = new ModificationRequst();
  Locator.Instance.HandleRequest&lt;IModificationRequst&lt;Employee&gt;&gt;(req);
  </code></pre>
  
  <p>But having hard time with the generics, is there an already established pattern for resovling the requests to their proper request handlers and invoking their handling, rather than getting a handler and then invoking their Handle method from the client?</p>