Поделиться через


IVsApplicationConfiguration - интерфейс

Предоставляет интерфейс для использования при работе с файлами конфигурации.

Пространство имен:  Microsoft.VisualStudio.ManagedInterfaces9
Сборка:  Microsoft.VisualStudio.ManagedInterfaces.WCF (в Microsoft.VisualStudio.ManagedInterfaces.WCF.dll)

Синтаксис

'Декларация
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

Тип IVsApplicationConfiguration предоставляет следующие члены.

Методы

  Имя Описание
Открытый метод Dispose Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. (Унаследовано от IDisposable.)
Открытый метод FileExists Возвращает значение, указывающее, существует ли файл конфигурации на диске.
Открытый метод FilePath Возвращает путь к файлу конфигурации.
Открытый метод LoadConfiguration Загружает конфигурацию для данной иерархии и itemid.
Открытый метод QueryEditConfiguration Определяет, является ли файл конфигурации может быть изменен.

В начало страницы

События

  Имя Описание
Открытое событие ConfigurationChanged Происходит, когда конфигурация проекта изменилась.

В начало страницы

Заметки

IVsApplicationConfiguration программа-оболочка для интерфейса Configuration объекты.

Используйте IVsApplicationConfiguration предоставлять уведомления и управление исходным кодом изменения для всех файлов конфигурации в иерархии конфигурации для текущего проекта. Он также может использоваться для координации изменений к базовым текстовым буферы между данным экземпляром и другими редакторами, могут быть открыты файла конфигурации.

IVsApplicationConfiguration также выполняет обработку изменений уведомления, вызванные, добавление, удаление и перемещение файлов конфигурации и папки таким образом, что может привести к конфигурации для заданной иерархии или itemid, который будет недействителен. Он также уведомляет клиентов, зарегистрирован для уведомлений изменения конфигурации.

Примеры

В следующем примере кода демонстрируется применение IVsApplicationConfiguration интерфейс, чтобы изменить файл конфигурации.

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

См. также

Ссылки

Microsoft.VisualStudio.ManagedInterfaces9 - пространство имен