Share via


IVsPackageExtensionProvider Interface

Definition

Provides "pull"-style extension points for packages.

public interface class IVsPackageExtensionProvider
public interface class IVsPackageExtensionProvider
__interface IVsPackageExtensionProvider
public interface IVsPackageExtensionProvider
[System.Runtime.InteropServices.Guid("1FC6AF83-7F43-467E-B2C4-28E2B1B376AB")]
[System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IVsPackageExtensionProvider
type IVsPackageExtensionProvider = interface
[<System.Runtime.InteropServices.Guid("1FC6AF83-7F43-467E-B2C4-28E2B1B376AB")>]
[<System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)>]
type IVsPackageExtensionProvider = interface
Public Interface IVsPackageExtensionProvider
Derived
Attributes

Remarks

This interface is an alternative to the more usual “factory” model where a package, in its SetSite method, registers instances of factories with a central registrar. That model requires that the central registrar be created even if that feature is not yet desired. That is a "push"-style, where the package pushes its factory implementation to the environment.

With IVsPackageExtensionProvider, instances of the extension point are "pulled" on demand from packages as needed. This allows the package to delay creation of extension point instances until they are actually needed.

It is possible to re-implement traditional project, editor, and UI factories in terms of IVsPackageExtensionProvider.

Methods

CreateExtensionInstance(Guid, Guid)

Creates an instance of the requested extension.

Applies to