title: How decorate in structuremap?
body: <p>I try it decorate IProjectService but I can't find documentation for struturemap</p>
  
  <pre><code>For&lt;IProjectService&gt;().Use&lt;ProjectServiceLogDecorator&gt;();
  For&lt;IProjectService&gt;().Use&lt;ProjectService&gt;()
                        .DecorateWith((context, decorator) =&gt;   
                                    context.GetInstance&lt;ProjectServiceLogDecorator&gt;());
  </code></pre>
  
  <p>What I do wrong?</p>
  
  <p>exeption:</p>
  
  <blockquote>
    <p>Bi-directional dependency relationship detected! Check the
    StructureMap stacktrace below:
    1.) new ProjectServiceLogDecorator(<em>Default of IRepository</em>, <em>Default of IUnitOfWork</em>, <em>Default of IProjectService</em>, <em>Default of IPrincipal</em>, <em>Default of AuditEventLogger</em>)
    2.) Project.Services.Projects.ProjectServiceLogDecorator
    3.) Instance of Project.Services.Projects.ProjectServiceLogDecorator
    4.) FuncInterceptor of Project.Services.Projects.IProjectService: IContext.GetInstance()
    5.) Project.Services.Projects.ProjectService
    6.) Instance of Project.Services.Projects.IProjectService (Project.Services.Projects.ProjectService)
    7.) new UsersController(<em>Default of IUserService</em>, <em>Default of IService</em>, <em>Default of IUserNotificationService</em>,
    <em>Default of IService</em>, <em>Default of IProjectService</em>, <em>Default of ILicenseGroupService</em>)
    8.) Project.Web.Api.Controllers.UsersController
    9.) Instance of Project.Web.Api.Controllers.UsersController
    10.) Container.GetInstance(Project.Web.Api.Controllers.UsersController)</p>
  </blockquote>
  
  <p>I found solution but it is <strong>disgustingly</strong>:</p>
  
  <pre><code>For&lt;IProjectService&gt;().Use&lt;ProjectService&gt;().DecorateWith((ctx, service) =&gt; 
      new ProjectServiceLogDecorator(
          ctx.GetInstance&lt;IRepository&lt;Project&gt;&gt;(),
          ctx.GetInstance&lt;IUnitOfWork&gt;(),
          service,
          ctx.GetInstance&lt;ILicenseService&gt;(),
          ctx.GetInstance&lt;IPrincipal&gt;(),
          ctx.GetInstance&lt;AuditEventLogger&gt;()
      )
  );
  </code></pre>