I have 2 assemblies( foreign and local ). The foreign assembly cannot be modified. I would like to extend a foreign class such that it will now implement a local interface. Is this possible in C#?

EDIT:
I know that I can do the following:

```
// foreign.dll
namespace DX {
    public struct Vector3 {
        ...
    }
}

// local.dll
namespace MyDX {
    public static class Extensions {
        public static void MyExtensionMethod( this Vector3 vec, int index ){
            ...
        }
    }
}

```

What I'm interested in doing is forcing the foreign class/struct to implement a particular interface (without using inheritance ). I would like to use Vector3 as a type in a generic class:

```
public class MyGeneric<T> where T: IComparable<T> {
    T _value;
}

```

The above struct: Vector3 does not implement IComparable but I would like to use reflection to implement the interface so that I can use the foreign class/struct in its existing form (ie. w/o using inheritance). Inheritance may be necessary...