First of all, as Ian1971 said, yes, you can, dropping it to a certain type, say
ILookup lookupVar = new LookUpImplementor(); ((extendedLookUpImplementor)lookupVar).ExtendedMethod();
or alternatively using dynamic / reflection.
Having said that, I really don't think this is a good way to do this, because it would violate one of the goals of the contract / interface.
For example, if we have an ILookup variable "lookupVar"
dynamic lookup = lookupVar; lookup.ExtendedMethod();
At any point in time, code using the lookupVar object does not guarantee that the ExtendedMethod method will exist and may throw an exception at run time.
My real question for you would be why you want to add a method that cannot be added to the contract, what is your goal here. If the method extends the class, try switching to the C # extension method , which may fit your scenario.
source share