What you have works very well. In fact it's very similar to other .NET interfaces and types where you want the interface implementer to use your type, like:
public class MyClass : IEqualityComparer
{
// From the interface IEqualityComparer
public bool Equals(MyClass other) { ... }
...
}