Partilhar via


Interface IVsApplicationConfiguration

Fornece uma interface para uso quando estiver trabalhando com arquivos de configuração.

Namespace:  Microsoft.VisualStudio.ManagedInterfaces9
Assembly:  Microsoft.VisualStudio.ManagedInterfaces.WCF (em Microsoft.VisualStudio.ManagedInterfaces.WCF.dll)

Sintaxe

'Declaração
Public Interface IVsApplicationConfiguration _
    Inherits IDisposable
public interface IVsApplicationConfiguration : IDisposable
public interface class IVsApplicationConfiguration : IDisposable
type IVsApplicationConfiguration =  
    interface 
        interface IDisposable 
    end
public interface IVsApplicationConfiguration extends IDisposable

O tipo IVsApplicationConfiguration expõe os membros a seguir.

Métodos

  Nome Descrição
Método público Dispose Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. (Herdado de IDisposable.)
Método público FileExists Retorna um valor indicando se um arquivo de configuração existe no disco.
Método público FilePath Retorna o caminho para um arquivo de configuração.
Método público LoadConfiguration Carrega a configuração para uma determinada hierarquia/itemid.
Método público QueryEditConfiguration Determina se um arquivo de configuração pode ser modificado.

Superior

Eventos

  Nome Descrição
Evento público ConfigurationChanged Ocorre quando uma configuração de projeto foi alterado.

Superior

Comentários

O IVsApplicationConfiguration interface é um invólucro para Configuration objetos.

Use IVsApplicationConfiguration para fornecer notificações de alteração e controle para todos os arquivos de configuração na hierarquia de configuração para o projeto atual do código fonte. Ele também pode ser usado para coordenar mudanças para os buffers de texto subjacente entre essa instância e outros editores que podem ter o arquivo de configuração a abrir.

IVsApplicationConfigurationtambém alças alteram notificações causadas pela adição, exclusão e movimentação de arquivos de configuração e pastas de uma maneira que pode fazer com que a configuração para uma determinada hierarquia/itemid sejam invalidados. Ele também notifica os clientes que se inscreveram para configuração de notificações de alteração.

Exemplos

O exemplo de código a seguir demonstra como usar o IVsApplicationConfiguration interface para modificar um arquivo de configuração.

/// Make sure that our custom WSDL importer extension is registered in /// the Metadata section of the configuration file for the current 
/// project hierarchy and serviceProvider that gives access to required 
/// services.
private static void EnsureCustomWsdlImporterRegistered
 (IVsHierarchy hierarchy, IServiceProvider serviceProvider)
{
/// The IVsApplicationConfigurationManager service returns a 
/// System.Configuration.Configuration object corresponding to 
/// the given project's app.config or web.config file.
IVsApplicationConfigurationManager cfgMgr = 
 serviceProvider.GetService(typeof(IVsApplicationConfigurationManager))
 as IVsApplicationConfigurationManager;
    // Return the current application's configuration file by using 
    // the IVsApplicationConfiguration APIs. Make sure that the 
    // instance that is returned is disposed of correctly in order 
    // to clean up any event hooks or docdatas.
    using (IVsApplicationConfiguration appCfg = 
 cfgMgr.GetApplicationConfiguration(hierarchy, 
 Microsoft.VisualStudio.VSConstants.VSITEMID_ROOT))
    {
        System.Configuration.Configuration cfg = 
 appCfg.LoadConfiguration();

        // Check the file out from Source Code Control if it 
        // exists.
        appCfg.QueryEditConfiguration();

        /// After a System.Configuration.Configuration object
        /// exists, use the"normal" .NET Framework configuration
        /// APIs to return the sections that you want to modify.
        ServiceModelSectionGroup sg = 
 ServiceModelSectionGroup.GetSectionGroup(cfg);
        Type importerType = typeof(BindingPickerWsdlImportExtension);
        if (!IsWsdlImporterRegistered(sg, importerType))
        {
            // If our custom WSDL importer is not registered, add 
            // it to the application's configuration file.
            sg.Client.Metadata.WsdlImporters.Add(new 
 WsdlImporterElement(importerType));
            cfg.Save();
        }
    }
}

Consulte também

Referência

Namespace Microsoft.VisualStudio.ManagedInterfaces9