IVsSettingsReader Интерфейс

Определение

Предоставляет доступ для чтения к сведениям о конфигурации, хранящимся в файле параметров Visual Studio.

public interface class IVsSettingsReader
public interface class IVsSettingsReader
__interface IVsSettingsReader
[System.Runtime.InteropServices.Guid("38C38501-1428-4ABB-8B27-2F0E1E6DD757")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsSettingsReader
[<System.Runtime.InteropServices.Guid("38C38501-1428-4ABB-8B27-2F0E1E6DD757")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsSettingsReader = interface
Public Interface IVsSettingsReader
Атрибуты

Примеры

В приведенном ниже примере является реализацией объекта ImportSettings , который считывает три значения параметров. Этот метод использует некоторые извлеченные значения для определения способа получения другого значения: размер входного буфера pTrashBytes определяется путем извлечения значения, lTrashLength полученного ранее.

Примечание

При хранении буферов или строк рекомендуется сохранить размер хранимого буфера или строки, а также сам объект. Эти сведения о размере всегда следует использовать при получении сохраненного буфера строки, чтобы избежать переполнения буфера.

HRESULT ImportSettings_CommandBars(IVsSettingsReader *pSettings, UserSettingsFlags flags, BOOL *pfRestartRequired)  
{  
    if (!pSettings)  
        return E_INVALIDARG;  

    if (pfRestartRequired)  
        {  
            *pfRestartRequired = FALSE; //Nobody should require a restart!!  
        }  

    CComBSTR bstrFirstSettingName;  
    long lTrashLength = 0;  
    BYTE *pTrashBytes = NULL;  

    //Determines whether we can treat import as an additive operation, or a reset all settings operation  
    BOOL fResetCompletely = FALSE;   

    if (flags & USF_ResetOnImport)  
        fResetCompletely = TRUE;  

    hr = pSettings->ReadSettingString(c_szFirstSettingName, &bstrFirstSettingName);  
    IfFailGo(hr);  

    hr = pSettings->ReadSettingLong(c_szRandomTrashLength, &lTrashLength);  
    IfFailGo(hr);  

    if (lTrashLength > 0)  
        {  
            pTrashBytes = (BYTE*)VSAlloc(lTrashLength);  
            IfNullMemGo(pTrashBytes);  

            long lDataRead = 0;  

            hr = pSettings->ReadSettingBytes(c_szRandomTrashLength, pTrashBytes, &lDataRead, lTrashLength);  
            IfFailGo(hr);  

            if (lDataRead != lTrashLength)  
    {  
        hr = E_UNEXPECTED;  
        goto Error;  
    }  
        }  

    //Note: before returning these settings should immediately be applied to your personal  
    //            settings store, whether in the registry or the file system.  
    //This write-through cache methodology is essential to allow us to work in multi-instance IDE scenarios.  
    hr = UpdateState_CommandBar(bstrFirstSettingName,lTrashLength,pTrashBytes,lDataRead);  

 Error:  
    return hr;  
};  

Комментарии

Этот интерфейс реализуется средой.

Примечания для вызывающих объектов

Вызовите IVsSettingsReader интерфейс при получении сведений о сохраненной конфигурации VSPackage из Visual Studio файла параметров.

Примечания для разработчиков

Только пакеты VSPackage, которые зарегистрировали поддержку Visual Studio механизма параметров, используют IVsSettingsReader интерфейс. Дополнительные сведения о регистрации пакета VSPackage, поддерживающего Visual Studio механизм параметров, см. в разделе Поддержка параметров пользователя.

При выборе операции импорта параметров из функции импорта и экспорта , доступной в меню средств интегрированной среды разработки, среда передает IVsSettingsReader интерфейс методу импорта параметров VSPackage, который использует интерфейс для чтения данных конфигурации. SDK для Visual StudioПоддерживает несколько методов импорта:

  • Для пакетов VSPackage на основе сборки взаимодействия метод импорта является реализацией IVsUserSettings интерфейса VSPackage ImportSettings .

  • Для большинства пакетов VSPackage, основанных на управляемых пакетах, метод импорта является реализацией IProfileManager интерфейса VSPackage LoadSettingsFromXml .

  • Для управляемых пакетов VSPackage на основе платформы пакета DialogPage , реализующих интерфейс, метод импорта — это LoadSettingsFromXml метод интерфейса.

Дополнительные сведения об импорте параметров см. в разделе как использовать сборки взаимодействия для импорта параметров или импорта параметров.

Методы

ReadCategoryVersion(Int32, Int32, Int32, Int32)

Возвращает значение объекта категории Version, хранящегося в файле параметров Visual Studio.

ReadFileVersion(Int32, Int32, Int32, Int32)

Возвращает значение объекта версии файла, хранящегося в файле параметров Visual Studio.

ReadSettingAttribute(String, String, String)

Возвращает значение объекта атрибута, хранящегося в файле параметров Visual Studio.

ReadSettingBoolean(String, Int32)

Возвращает значение логического объекта, хранящегося в файле параметров Visual Studio.

ReadSettingBytes(String, Byte, Int32, Int32)

Возвращает значения массива, хранящегося в файле параметров Visual Studio.

ReadSettingLong(String, Int32)

Возвращает значение длинного объекта, хранящегося в файле параметров Visual Studio.

ReadSettingString(String, String)

Возвращает значение строкового объекта, хранящегося в файле параметров Visual Studio.

ReadSettingXml(String, Object)

Возвращает значение XML-объекта, хранящегося в файле параметров Visual Studio.

ReadSettingXmlAsString(String, String)

Возвращает значение параметра XML в виде строкового объекта, хранящегося в файле параметров Visual Studio.

ReportError(String, UInt32)

Сообщает статус ошибки операции чтения файла параметров.

Применяется к