I'm using the IInterceptor to Intercept method invocations in certain classes.
The interceptor is set up like so:public class InstrumentationInterceptor: IInterceptor
 {
 public InstrumentationInterceptor()
 {
 Measure.Configure(new StatsdConfig());
 }

```
    public void Intercept(IInvocation invocation)
    {
        var instrumentationId = new StringBuilder();
        instrumentationId.Append(typeof(Program).Namespace.Replace(".", string.Empty).ToLower());
        instrumentationId.Append(".");
        instrumentationId.Append("response");
        instrumentationId.Append(".");
        // The following will split the camel case simple name of the proxied class,
        //  where 'Consumer' suffix has been removed, and also convert to lower case
        instrumentationId.Append(Regex.Replace(invocation.TargetType.Name.Replace("Consumer", string.Empty), "(\\B[A-Z])", "_$1").ToLowerInvariant());
        instrumentationId.Append(".");
        instrumentationId.Append("duration");
        using (
            Measure.StartTimer(instrumentationId.ToString()))
        {
            invocation.Proceed();
            Measure.Counter(instrumentationId.ToString(), 1);
        }
    }
}

```

This is then wired up like so in an Autofac module:

```
var builder = new ContainerBuilder();
builder.RegisterType<DataConsumer>().
            As<IConsumer<DataRequest>>().
            EnableInterfaceInterceptors().
            InterceptedBy(typeof (InstrumentationInterceptor));
builder.Build();

```

I'm using this to measure time taken and count instances this method is called. I'd like to be able to push this to an external library I have, but I'll loose the ability to get the Namespace of the calling Program. Is there any way to use the IInvocation to get to the target namespace?

Any thoughts on this would be useful.

Thanks.