Partager via


IVsApplicationConfiguration, interface

Fournit à une interface pour une utilisation en travaillant des fichiers de configuration.

Espace de noms :  Microsoft.VisualStudio.ManagedInterfaces9
Assembly :  Microsoft.VisualStudio.ManagedInterfaces.WCF (dans Microsoft.VisualStudio.ManagedInterfaces.WCF.dll)

Syntaxe

'Déclaration
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

Le type IVsApplicationConfiguration expose les membres suivants.

Méthodes

  Nom Description
Méthode publique Dispose Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées. (Hérité de IDisposable.)
Méthode publique FileExists Retourne une valeur indiquant si un fichier de configuration existe sur le disque.
Méthode publique FilePath Retourne le chemin d'accès pour un fichier de configuration.
Méthode publique LoadConfiguration Charge la configuration pour une hiérarchie/itemid donnés.
Méthode publique QueryEditConfiguration Détermine si un fichier de configuration peut être modifié.

Début

Événements

  Nom Description
Événement public ConfigurationChanged Se produit lorsque la configuration d'un projet a changé.

Début

Notes

L'interface d'IVsApplicationConfiguration est un wrapper pour des objets d'Configuration.

Utilisation IVsApplicationConfiguration de fournir les notifications de modifications et le contrôle de code source pour tous les fichiers de configuration dans la hiérarchie de configuration pour le projet en cours. Elle peut également être utilisée pour coordonner des modifications aux mémoires tampon de texte sous-jacentes entre cette instance et d'autres éditeurs qui peuvent avoir le fichier de configuration ouvert.

IVsApplicationConfiguration traite également des notifications de modifications provoquées en s'ajoutant, supprimant, et les fichiers de configuration et les dossiers mobiles d'une façon qui peut provoquer la configuration pour qu'une hiérarchie/itemid donnés est invalidée. Elle indique également les clients qui se sont enregistrés pour des notifications de modification de configuration.

Exemples

L'exemple de code suivant montre comment utiliser l'interface d'IVsApplicationConfiguration pour modifier un fichier de configuration.

/// 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();
        }
    }
}

Voir aussi

Référence

Microsoft.VisualStudio.ManagedInterfaces9, espace de noms