Open sandboxFocus

Method QueryInterface

QueryInterface<T>(object, bool)

Gets the implementation of a specified interface for the specified object.

Declaration
public static T QueryInterface<T>(object obj, bool throwing = true) where T : class
Parameters
Type Name Description
object obj

The object for which the interface should be queried.

bool throwing

true if the method should throw a InvalidCastException if obj does not implement the T interface, false if null be returned instead. The default value is true.

Returns
Type Description
T

An object implementing the T interface on behalf of obj, or null if obj does not implement T and throwing is true.

Type Parameters
Name Description
T

The type of the required interface.

Remarks

This method shall return obj if the type of obj statically implements the interface. Otherwise, the method shall return another object that implements T on behalf of obj. In this case, the returned object shall implement the IDynamicInterfaceImplementation interface, which allows to navigate back to obj.