System.Runtime.InteropServices.ComDefaultInterfaceAttribute Class

Specifies a default interface to expose to COM. This class cannot be inherited.

See Also: ComDefaultInterfaceAttribute Members

Syntax

[System.AttributeUsage(System.AttributeTargets.Class, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComDefaultInterfaceAttribute : Attribute

Remarks

Compilers do not necessarily respect the order in which interfaces are implemented. For example, suppose you have the following code:

Example

interface IBase {}interface IDerived : IBase {}class MyClass : IBase, IDerived {}

The compiler emits the implemented interfaces as IDervied, IBase. The ordering of interfaces is important when using the System.Runtime.InteropServices.ClassInterfaceAttribute class with [ClassInterface(ClassInterfaceType.None)] to expose an explicit interface as the default interface. Regardless of the specified ClassInterfaceType, use the System.Runtime.InteropServices.ComDefaultInterfaceAttribute attribute to specify which interface should be recognized as the default.

Note that the type decorated by the System.Runtime.InteropServices.ComDefaultInterfaceAttribute must actually derive from the interface specified as the default interface.

Requirements

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 2.0.0.0, 4.0.0.0
Since: .NET 2.0