이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
Visual Studio 2017을 사용하는 것이 좋습니다.

IVsDataProvider.GetUnsupportedReason 메서드 (Guid, CommandID, Object)

작업 지정한 DDEX 데이터 원본에 지원 되지 않습니다 이유를 설명 하는 지역화 된 문자열을 가져옵니다.

네임스페이스:  Microsoft.VisualStudio.Data.Core
어셈블리:  Microsoft.VisualStudio.Data.Core(Microsoft.VisualStudio.Data.Core.dll)

string GetUnsupportedReason(
	Guid source,
	CommandID command,
	Object context
)

매개 변수

source
형식: Guid

DDEX 데이터 소스 식별자입니다.

command
형식: CommandID

작업을 식별 하는 명령입니다.

context
형식: Object

작업이 존재 하는 컨텍스트를 나타내는 개체입니다.

반환 값

형식: String
이유 지정한 작업이 지원 되지 않습니다, 실제로 작업은 지원 되지 않습니다; 경우에 대해 설명 하는 지역화 된 문자열 그렇지 않으면 null.

예외조건
ArgumentNullException

command 매개 변수가 null입니다.

[<ANY>]

DDEX 공급자 GetUnsupportedReason 구현에서 예외가 발생 했습니다.

이 메서드를 사용 하면 DDEX 클라이언트 작업을 수행 하려고 할 때 현재 환경에서 지원 되지 않는 이유를 설명 하는 구체적인 이유를 사용 하 여 사용자에 게 제공할 수 있습니다. 환경 버전의 Visual Studio 실행 하 고 런타임 구성 요소를 컴퓨터에 설치 된 따라 다를 수 있습니다. 일반적으로 이전 Visual Studio 버전 (예를 들어, 일부 명령은 Express 버전에 대 한 제한)에 의해 제어 반면 후자는 일반적으로 제어 되는 공급자에 의해 IVsDataProviderDynamicSupport 있는 경우 구현 합니다.

많은 작업은 몇 가지 큰 컨텍스트 내에서 발생합니다. 이 간단한 예제에서는 특정 연결의 컨텍스트에서 발생 하는 연결에 대 한 열기 명령입니다. context 매개 변수 GetUnsupportedReason 에 전달 하 고 작업을 지원 하지 않는다는 이유로 확인의 일부로 사용 되는 개체를 인식할 수 있습니다.

이 메서드는 Visual Studio 버전에는 작업을 지원 하지 않는다는 이유 있는지 여부를 확인 하 여 시작 합니다. 이 쿼리에서 반환 하는 경우 null (즉, Visual Studio 작업을 지원 하지 않아도) 공급자가 제공 하 고는 IVsDataProviderDynamicSupport 작업을 지원 하지 않는다는 이유로 공급자를 쿼리를 구현 합니다.

다음 코드에서는 호출 하는 IsOperationSupported 공급자 특정 데이터 탐색기 노드 삭제를 지원 하는지 여부를 확인 하. 코드를 호출 하 여, 그렇지 않은 경우 GetUnsupportedReason 해당 작업이 지원 되지 않는 이유를 설명 하기 위해 적절 한 메시지를 확인할 수 있습니다.

using System;
using System.Windows.Forms;
using System.ComponentModel.Design;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;

public class DDEX_IVsDataProviderExample7
{
    public static bool AllowDelete(IVsDataProvider provider,
        IVsDataExplorerNode node)
    {
        if (!provider.IsOperationSupported(StandardCommands.Delete, node))
        {
            MessageBox.Show(provider.GetUnsupportedReason(
                StandardCommands.Delete, node));
            return false;
        }
        return true;
    }
}

표시: