Advertisement
Guest User

Request processor

a guest
Jan 9th, 2016
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.79 KB | None | 0 0
  1. using Castle.Windsor;
  2. using Common;
  3.  
  4. namespace CrossCuttingConcerns
  5. {
  6.     public interface IRequestProcessor
  7.     {
  8.         void Process<TRequest>(TRequest request) where TRequest : IRequest;    
  9.     }
  10.  
  11.     class RequestProcessor : IRequestProcessor
  12.     {
  13.         readonly IWindsorContainer container;
  14.  
  15.         public RequestProcessor(IWindsorContainer container)
  16.         {
  17.             this.container = container;
  18.         }
  19.  
  20.         public void Process<TRequest>(TRequest request) where TRequest : IRequest
  21.         {
  22.             var command = container.Resolve<ICommand<TRequest>>();
  23.  
  24.             try
  25.             {
  26.                 command.Execute(request);
  27.             }
  28.             finally
  29.             {
  30.                 container.Release(command);
  31.             }
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement