.Net 3.5 sp1 available type question ...

Is it possible to "get a handle" or reference to the actual instance of an assembly that called a method? I can get the executing and calling assembly via reflection, but what I'm after is not so much the assembly, but the INSTANCE of that assembly that called method. 

Simple example (maybe):

```
interface IBob
{
  int Id { get; }
  void Foo();
}

public class Bob : IBob
{
  private int _id = 123;

  public int Id
  {
    get { return _id; } 
  }

  public void Foo()
  {
     new OtherAssemblyClass().Bar();
  }
}

public class OtherAssemblyClass
{
  public void Bar()
  {
    //
    // what I want to do here is get a reference 
    // to the calling INSTANCE of IBob and determine
    // Bob's Id ... so something like:
    //
    // int Id = (System.XXX.GetCallingAssemblyInstance() as IBob).Id;
    //
    //
  }
}

```

The real situation is a bit more complex than this, and precludes the obvious passing of IBob instance as a parameter in OtherAssemblyClass.Bar(), although that may be end result. 

Entirely possible I'm just being stupid too, and not seeing obvious. 2 x 4 corrections to skull also welcome.