IVsPackageExtensionProvider Interface

 

Provides "pull"-style extension points for packages.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop.11.0 (in Microsoft.VisualStudio.Shell.Interop.11.0.dll)

[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
[GuidAttribute("1FC6AF83-7F43-467E-B2C4-28E2B1B376AB")]
public interface IVsPackageExtensionProvider

NameDescription
System_CAPS_pubmethodCreateExtensionInstance(Guid, Guid)

Creates an instance of the requested extension.

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.

Return to top
Show: