Type.IsEquivalentTo(Type) Method


Determines whether two COM types have the same identity and are eligible for type equivalence.

 virtual bool IsEquivalentTo(Type ^ other);
public virtual bool IsEquivalentTo (Type? other);
public virtual bool IsEquivalentTo (Type other);
abstract member IsEquivalentTo : Type -> bool
override this.IsEquivalentTo : Type -> bool
Public Overridable Function IsEquivalentTo (other As Type) As Boolean



The COM type that is tested for equivalence with the current type.



true if the COM types are equivalent; otherwise, false. This method also returns false if one type is in an assembly that is loaded for execution, and the other is in an assembly that is loaded into the reflection-only context.


Beginning with the .NET Framework 4, the common language runtime supports the embedding of type information for COM types directly into managed assemblies, instead of requiring the managed assemblies to obtain type information for COM types from interop assemblies. Because the embedded type information includes only the types and members that are actually used by a managed assembly, two managed assemblies might have very different views of the same COM type. Each managed assembly has a different Type object to represent its view of the COM type. The common language runtime supports type equivalence between these different views for interfaces, structures, enumerations, and delegates.

Type equivalence means that a COM object that is passed from one managed assembly to another can be cast to the appropriate managed type in the receiving assembly. The IsEquivalentTo method enables an assembly to determine that a COM object obtained from another assembly has the same COM identity as one of the first assembly's own embedded interop types, and thus can be cast to that type.

For more information, see Type Equivalence and Embedded Interop Types.

Applies to