이 항목에서는 데이터 저장소의 데이터를 조작할 수 있는 Windows PowerShell 공급자를 만드는 방법을 설명합니다. 이 항목에서는 저장소의 데이터 요소를 데이터 저장소의 "항목"이라고 합니다. 따라서 저장소의 데이터를 조작할 수 있는 공급자를 Windows PowerShell 항목 공급자라고 합니다.
참고
Windows Vista용 Microsoft Windows 소프트웨어 개발 키트 및 .NET Framework 3.0 런타임 구성 요소를 사용하여 이 공급자에 대한 C# 소스 파일(AccessDBSampleProvider03.cs)을 다운로드할 수 있습니다. 다운로드 지침은 Windows PowerShell 설치하고 Windows PowerShell SDK를 다운로드하는 방법을 참조하세요.
다운로드한 원본 파일은 디렉터리에서 PowerShell Samples 사용할 수 있습니다. 다른 Windows PowerShell 공급자 구현에 대한 자세한 내용은 Windows PowerShell 공급자 디자인을 참조하세요.
이 항목에 설명된 Windows PowerShell 항목 공급자는 Access 데이터베이스에서 데이터 항목을 가져옵니다. 이 경우 "항목"은 Access 데이터베이스의 테이블 또는 테이블의 행입니다.
Windows PowerShell 항목 공급자 클래스 정의
Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ItemCmdletProvider 기본 클래스에서 파생되는 .NET 클래스를 정의해야 합니다. 다음은 이 섹션에 설명된 항목 공급자에 대한 클래스 정의입니다.
[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : ItemCmdletProvider
이 클래스 정의에서 System.Management.Automation.Provider.CmdletProviderAttribute 특성에는 두 개의 매개 변수가 포함됩니다. 첫 번째 매개 변수는 Windows PowerShell 사용되는 공급자에 대해 사용자에게 친숙한 이름을 지정합니다. 두 번째 매개 변수는 명령 처리 중에 공급자가 Windows PowerShell 런타임에 노출하는 Windows PowerShell 특정 기능을 지정합니다. 이 공급자의 경우 특정 기능에 Windows PowerShell 추가되지 않습니다.
기본 기능 정의
Windows PowerShell 공급자 디자인에 설명된 대로 System.Management.Automation.Provider.DriveCmdletProvider 클래스는 서로 다른 공급자 기능을 제공하는 여러 다른 클래스에서 파생됩니다. 따라서 Windows PowerShell 항목 공급자는 해당 클래스에서 제공하는 모든 기능을 정의해야 합니다.
세션별 초기화 정보를 추가하고 공급자가 사용하는 리소스를 해제하는 기능을 구현하는 방법에 대한 자세한 내용은 기본 Windows PowerShell 공급자 만들기를 참조하세요. 그러나 여기에 설명된 공급자를 포함한 대부분의 공급자는 Windows PowerShell 제공하는 이 기능의 기본 구현을 사용할 수 있습니다.
Windows PowerShell 항목 공급자가 저장소의 항목을 조작하려면 먼저 System.Management.Automation.Provider.DriveCmdletProvider 기본 클래스의 메서드를 구현하여 데이터 저장소에 액세스해야 합니다. 이 클래스를 구현하는 방법에 대한 자세한 내용은 Windows PowerShell 드라이브 공급자 만들기를 참조하세요.
경로 유효성 검사
데이터 항목을 찾을 때 Windows PowerShell 런타임은 Windows PowerShell 작동 방식의 "PSPath 개념" 섹션에 정의된 대로 공급자에 대한 Windows PowerShell 경로를 제공합니다. Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath 메서드를 구현하여 전달된 경로의 구문 및 의미 체계 유효성을 확인해야 합니다. 이 메서드는 경로가 유효한 경우를 반환하고false, 그렇지 않으면 반환 true 합니다. 이 메서드의 구현 경로에 항목의 존재 여부를 확인 하지 않아야 하지만 경로 구문 및 의미 체계적으로 올바른 합니다.
다음은 이 공급자에 대한 System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath 메서드의 구현입니다. 이 구현에서는 NormalizePath 도우미 메서드를 호출하여 경로의 모든 구분 기호를 균일한 구분 기호로 변환합니다.
protected override bool IsValidPath(string path)
{
bool result = true;
// check if the path is null or empty
if (String.IsNullOrEmpty(path))
{
result = false;
}
// convert all separators in the path to a uniform one
path = NormalizePath(path);
// split the path into individual chunks
string[] pathChunks = path.Split(pathSeparator.ToCharArray());
foreach (string pathChunk in pathChunks)
{
if (pathChunk.Length == 0)
{
result = false;
}
}
return result;
} // IsValidPath
항목이 있는지 확인
경로를 확인한 후 Windows PowerShell 런타임은 해당 경로에 데이터 항목이 있는지 확인해야 합니다. 이러한 유형의 쿼리를 지원하기 위해 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ItemCmdletProvider.ItemExists 메서드를 구현합니다. 이 메서드는 지정된 경로에 있는 항목을 반환 true 하고 false 그렇지 않으면 (기본값) 반환합니다.
다음은 이 공급자에 대한 System.Management.Automation.Provider.ItemCmdletProvider.ItemExists 메서드의 구현입니다. 이 메서드는 PathIsDrive, ChunkPath 및 GetTable 도우미 메서드를 호출하고 공급자 정의 DatabaseTableInfo 개체를 사용합니다.
protected override bool ItemExists(string path)
{
// check if the path represented is a drive
if (PathIsDrive(path))
{
return true;
}
// Obtain type, table name and row number from path
string tableName;
int rowNumber;
PathType type = GetNamesFromPath(path, out tableName, out rowNumber);
DatabaseTableInfo table = GetTable(tableName);
if (type == PathType.Table)
{
// if specified path represents a table then DatabaseTableInfo
// object for the same should exist
if (table != null)
{
return true;
}
}
else if (type == PathType.Row)
{
// if specified path represents a row then DatabaseTableInfo should
// exist for the table and then specified row number must be within
// the maximum row count in the table
if (table != null && rowNumber < table.RowCount)
{
return true;
}
}
return false;
} // ItemExists
ItemExists 구현에 대해 기억해야 할 사항
System.Management.Automation.Provider.ItemCmdletProvider.ItemExists 구현에 다음 조건이 적용될 수 있습니다.
- 공급자 클래스를 정의할 때 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 공급자 기능을
Include``ExpandWildcards``Filter선언할Exclude수 있습니다. 이러한 경우 System.Management.Automation.Provider.ItemCmdletProvider.ItemExists 메서드의 구현은 메서드에 전달된 경로가 지정된 기능의 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude 및 System.Management.Automation.Provider.CmdletProvider.Include 속성)에 액세스해야 합니다. - 이 메서드의 구현은 항목을 사용자에게 표시할 수 있는 항목에 대한 모든 형태의 액세스를 처리해야 합니다. 예를 들어 사용자가 FileSystem 공급자(Windows PowerShell 제공)를 통해 파일에 대한 쓰기 액세스 권한이 있지만 읽기 권한이 없는 경우 파일이 여전히 존재하고 System.Management.Automation.Provider.ItemCmdletProvider.ItemExists가 반환
true됩니다. 구현 시 부모 항목을 확인하여 자식 항목을 열거할 수 있는지 확인해야 할 수 있습니다.
Test-Path cmdlet에 동적 매개 변수 연결
경우에 따라 Test-Path System.Management.Automation.Provider.ItemCmdletProvider.ItemExists를 호출하는 cmdlet에는 런타임에 동적으로 지정된 추가 매개 변수가 필요합니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 항목 공급자가 System.Management.Automation.Provider.ItemCmdletProvider.ItemExistsDynamicParameters 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에서 항목에 대한 동적 매개 변수를 검색하고 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성 및 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 매개 변수를 Test-Path 추가합니다.
이 Windows PowerShell 항목 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
항목 검색
항목을 검색하려면 Windows PowerShell 항목 공급자가 system.Management.Automation.Provider.ItemCmdletProvider.GetItem 메서드를 재정의 Get-Item 하여 cmdlet의 호출을 지원해야 합니다. 이 메서드는 System.Management.Automation.Provider.CmdletProvider.WriteItemObject 메서드를 사용하여 항목을 씁니다.
다음은 이 공급자에 대한 System.Management.Automation.Provider.ItemCmdletProvider.GetItem 메서드의 구현입니다. 이 메서드는 GetTable 및 GetRow 도우미 메서드를 사용하여 Access 데이터베이스의 테이블 또는 데이터 테이블의 행인 항목을 검색합니다.
protected override void GetItem(string path)
{
// check if the path represented is a drive
if (PathIsDrive(path))
{
WriteItemObject(this.PSDriveInfo, path, true);
return;
}// if (PathIsDrive...
// Get table name and row information from the path and do
// necessary actions
string tableName;
int rowNumber;
PathType type = GetNamesFromPath(path, out tableName, out rowNumber);
if (type == PathType.Table)
{
DatabaseTableInfo table = GetTable(tableName);
WriteItemObject(table, path, true);
}
else if (type == PathType.Row)
{
DatabaseRowInfo row = GetRow(tableName, rowNumber);
WriteItemObject(row, path, false);
}
else
{
ThrowTerminatingInvalidPathException(path);
}
} // GetItem
GetItem 구현에 대해 기억해야 할 사항
System.Management.Automation.Provider.ItemCmdletProvider.GetItem의 구현에는 다음 조건이 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 공급자 기능을
Include``ExpandWildcards``Filter선언할Exclude수 있습니다. 이러한 경우 System.Management.Automation.Provider.ItemCmdletProvider.GetItem 구현은 메서드에 전달된 경로가 이러한 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude 및 System.Management.Automation.Provider.CmdletProvider.Include 속성)에 액세스해야 합니다.기본적으로 System.Management.Automation.Provider.CmdletProvider.Force 속성을 설정하지 않는 한 이 메서드의 재정의는 일반적으로 사용자로부터 숨겨진 개체를 검색해서는 안 됩니다
true. 예를 들어 FileSystem 공급자에 대한 System.Management.Automation.Provider.ItemCmdletProvider.GetItem 메서드는 System.Management.Automation.Provider.CmdletProvider.Force 속성을 확인한 후 System.Management.Automation.Provider.CmdletProvider.WriteItemObject를 호출하려고 시도합니다.
Get-Item cmdlet에 동적 매개 변수 연결
경우에 따라 cmdlet에 Get-Item 런타임에 동적으로 지정된 추가 매개 변수가 필요합니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 항목 공급자가 System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에서 항목에 대한 동적 매개 변수를 검색하고 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성 및 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 매개 변수를 Get-Item 추가합니다.
이 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
항목 설정
항목을 설정하려면 Windows PowerShell 항목 공급자가 system.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드를 재정의 Set-Item 하여 cmdlet의 호출을 지원해야 합니다. 이 메서드는 지정된 경로에 있는 항목의 값을 설정합니다.
이 공급자는 System.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드에 대한 재정의를 제공하지 않습니다. 그러나 이 메서드의 기본 구현은 다음과 같습니다.
SetItem 구현에 대해 기억해야 할 사항
System.Management.Automation.Provider.ItemCmdletProvider.SetItem 구현에 다음 조건이 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 공급자 기능을
Include``ExpandWildcards``Filter선언할Exclude수 있습니다. 이러한 경우 System.Management.Automation.Provider.ItemCmdletProvider.SetItem의 구현은 메서드에 전달된 경로가 이러한 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude 및 System.Management.Automation.Provider.CmdletProvider.Include 속성)에 액세스해야 합니다.기본적으로 System.Management.Automation.Provider.CmdletProvider.Force 속성을 설정하지 않는 한 이 메서드의 재정의는 사용자로부터 숨겨진 개체를 설정
true하거나 작성해서는 안 됩니다. 경로가 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Force가 로 설정된false경우 System.Management.Automation.Provider.CmdletProvider.WriteError 메서드로 오류를 보내야 합니다.System.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드의 구현은 System.Management.Automation.Provider.CmdletProvider.ShouldProcess를 호출하고 데이터 저장소를 변경하기 전에 반환 값을 확인해야 합니다. 이 메서드는 데이터 저장소를 변경할 때 작업 실행을 확인하는 데 사용됩니다(예: 파일 삭제). System.Management.Automation.Provider.CmdletProvider.ShouldProcess 메서드는 사용자에게 변경할 리소스의 이름을 전송하며, Windows PowerShell 런타임은 표시할 내용을 결정할 때 명령줄 설정 또는 기본 설정 변수를 고려합니다.
System.Management.Automation.Provider.CmdletProvider.ShouldProcess에 대한 호출이 반환
true되면 System.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드가 System.Management.Automation.Provider.CmdletProvider.ShouldContinue 메서드를 호출해야 합니다. 이 메서드는 사용자에게 메시지를 보내 피드백을 통해 작업을 계속해야 하는지 확인합니다. System.Management.Automation.Provider.CmdletProvider.ShouldContinue를 호출하면 잠재적으로 위험한 시스템 수정을 추가로 확인할 수 있습니다.
SetItem에 대한 동적 매개 변수 검색
경우에 따라 cmdlet에 Set-Item 런타임에 동적으로 지정된 추가 매개 변수가 필요합니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 항목 공급자가 System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에서 항목에 대한 동적 매개 변수를 검색하고 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성 및 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 매개 변수를 Set-Item 추가합니다.
이 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
항목 지우기
항목을 지우기 위해 Windows PowerShell 항목 공급자는 system.Management.Automation.Provider.ItemCmdletProvider.ClearItem 메서드를 구현하여 cmdlet의 호출을 Clear-Item 지원합니다. 이 메서드는 지정된 경로에서 데이터 항목을 지웁니다.
이 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
ClearItem 구현에 대해 기억해야 할 사항
System.Management.Automation.Provider.ItemCmdletProvider.ClearItem 구현에는 다음 조건이 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 또는 공급자 기능을
Include``ExpandWildcards``Filter``Exclude선언할 수 있습니다. 이러한 경우 System.Management.Automation.Provider.ItemCmdletProvider.ClearItem 구현은 메서드에 전달된 경로가 이러한 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude 및 System.Management.Automation.Provider.CmdletProvider.Include 속성)에 액세스해야 합니다.기본적으로 System.Management.Automation.Provider.CmdletProvider.Force 속성을 설정하지 않는 한 이 메서드의 재정의는 사용자로부터 숨겨진 개체를 설정
true하거나 작성해서는 안 됩니다. 경로가 사용자로부터 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Forcefalse가 설정된 경우 System.Management.Automation.Provider.CmdletProvider.WriteError 메서드로 오류를 보내야 합니다.System.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드의 구현은 System.Management.Automation.Provider.CmdletProvider.ShouldProcess를 호출하고 데이터 저장소를 변경하기 전에 반환 값을 확인해야 합니다. 이 메서드는 데이터 저장소를 변경할 때 작업 실행을 확인하는 데 사용됩니다(예: 파일 삭제). System.Management.Automation.Provider.CmdletProvider.ShouldProcess 메서드는 Windows PowerShell 런타임을 사용하여 사용자에게 변경할 리소스의 이름을 보내고 표시할 대상을 결정할 때 명령줄 설정 또는 기본 설정 변수를 처리합니다.
System.Management.Automation.Provider.CmdletProvider.ShouldProcess에 대한 호출이 반환
true되면 System.Management.Automation.Provider.ItemCmdletProvider.SetItem 메서드는 System.Management.Automation.Provider.CmdletProvider.ShouldContinue 메서드를 호출해야 합니다. 이 메서드는 사용자에게 메시지를 보내 피드백을 통해 작업을 계속해야 하는지 확인합니다. System.Management.Automation.Provider.CmdletProvider.ShouldContinue를 호출하면 잠재적으로 위험한 시스템 수정을 추가로 확인할 수 있습니다.
ClearItem에 대한 동적 매개 변수 검색
경우에 따라 cmdlet에는 Clear-Item 런타임에 동적으로 지정된 추가 매개 변수가 필요합니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 항목 공급자가 System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters 메서드를 구현해야 합니다. 이 메서드는 표시된 경로에서 항목에 대한 동적 매개 변수를 검색하고 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성 및 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 매개 변수를 Clear-Item 추가합니다.
이 항목 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
항목에 대한 기본 작업 수행
Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction 메서드를 구현하여 cmdlet의 호출을 지원할 수 있습니다. 그러면 공급자가 지정된 경로에서 Invoke-Item 항목에 대한 기본 작업을 수행할 수 있습니다. 예를 들어 FileSystem 공급자는 이 메서드를 사용하여 특정 항목에 대해 ShellExecute 를 호출할 수 있습니다.
이 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
InvokeDefaultAction 구현에 대해 기억해야 할 사항
System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction 구현에는 다음 조건이 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 항목 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 또는 공급자 기능을
Include``ExpandWildcards``Filter``Exclude선언할 수 있습니다. 이러한 경우 System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction 구현은 메서드에 전달된 경로가 이러한 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude 및 System.Management.Automation.Provider.CmdletProvider.Include 속성)에 액세스해야 합니다.기본적으로 System.Management.Automation.Provider.CmdletProvider.Force 속성을 설정하지 않는 한 이 메서드의 재정의는 사용자로부터 숨겨진 개체를 설정하거나 작성해서는 안 됩니다
true. 경로가 사용자로부터 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Forcefalse가 설정된 경우 System.Management.Automation.Provider.CmdletProvider.WriteError 메서드로 오류를 보내야 합니다.
InvokeDefaultAction에 대한 동적 매개 변수 검색
경우에 따라 cmdlet에는 Invoke-Item 런타임에 동적으로 지정된 추가 매개 변수가 필요합니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 항목 공급자가 System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters 메서드를 구현해야 합니다. 이 메서드는 표시된 경로에서 항목에 대한 동적 매개 변수를 검색하고 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성 및 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 동적 매개 변수를 Invoke-Item 추가합니다.
이 항목 공급자는 이 메서드를 구현하지 않습니다. 그러나 다음 코드는 이 메서드의 기본 구현입니다.
도우미 메서드 및 클래스 구현
이 항목 공급자는 Windows PowerShell 정의된 공용 재정의 메서드에서 사용하는 여러 도우미 메서드 및 클래스를 구현합니다. 이러한 도우미 메서드 및 클래스에 대한 코드는 코드 샘플 섹션에 나와 있습니다.
NormalizePath 메서드
이 항목 공급자는 경로에 일관된 형식이 있는지 확인하기 위해 NormalizePath 도우미 메서드를 구현합니다. 지정된 형식은 백슬래시(\)를 구분 기호로 사용합니다.
PathIsDrive 메서드
이 항목 공급자는 PathIsDrive 도우미 메서드를 구현하여 지정된 경로가 실제로 드라이브 이름인지 확인합니다.
ChunkPath 메서드
이 항목 공급자는 공급자가 개별 요소를 식별할 수 있도록 지정된 경로를 분할하는 ChunkPath 도우미 메서드를 구현합니다. 경로 요소로 구성된 배열을 반환합니다.
GetTable 메서드
이 항목 공급자는 호출에 지정된 테이블에 대한 정보를 나타내는 DatabaseTableInfo 개체를 반환하는 GetTables 도우미 메서드를 구현합니다.
GetRow 메서드
이 항목 공급자의 System.Management.Automation.Provider.ItemCmdletProvider.GetItem 메서드는 GetRows 도우미 메서드를 호출합니다. 이 도우미 메서드는 테이블에서 지정된 행에 대한 정보를 나타내는 DatabaseRowInfo 개체를 검색합니다.
DatabaseTableInfo 클래스
이 항목 공급자는 데이터베이스의 데이터 테이블에 있는 정보 컬렉션을 나타내는 DatabaseTableInfo 클래스를 정의합니다. 이 클래스는 System.IO.Directoryinfo 클래스와 비슷합니다.
샘플 항목 공급자는 데이터베이스의 테이블을 정의하는 테이블 정보 개체 컬렉션을 반환하는 DatabaseTableInfo.GetTables 메서드를 정의합니다. 이 메서드에는 데이터베이스 오류가 항목이 0인 행으로 표시되도록 하는 try/catch 블록이 포함됩니다.
DatabaseRowInfo 클래스
이 항목 공급자는 데이터베이스 테이블의 행을 나타내는 DatabaseRowInfo 도우미 클래스를 정의합니다. 이 클래스는 System.IO.FileInfo 클래스와 비슷합니다.
샘플 공급자는 DatabaseRowInfo.GetRows 메서드를 정의하여 지정된 테이블에 대한 행 정보 개체 컬렉션을 반환합니다. 이 메서드에는 예외를 트래핑하는 try/catch 블록이 포함됩니다. 오류가 발생하면 행 정보가 발생하지 않습니다.
코드 샘플
전체 샘플 코드는 AccessDbProviderSample03 코드 샘플을 참조하세요.
개체 형식 정의 및 서식 지정
공급자를 작성할 때 기존 개체에 멤버를 추가하거나 새 개체를 정의해야 할 수 있습니다. 완료되면 Windows PowerShell 개체의 멤버를 식별하는 데 사용할 수 있는 형식 파일과 개체 표시 방법을 정의하는 Format 파일을 만듭니다. 자세한 내용은 개체 형식 및 서식 확장을 참조하세요.
Windows PowerShell 공급자 빌드
Cmdlet, 공급자 및 호스트 애플리케이션을 등록하는 방법을 참조하세요.
Windows PowerShell 공급자 테스트
이 Windows PowerShell 항목 공급자가 Windows PowerShell 등록되면 공급자의 기본 및 드라이브 기능만 테스트할 수 있습니다. 항목 조작을 테스트하려면 컨테이너 Windows PowerShell 공급자 구현에 설명된 컨테이너 기능도 구현해야 합니다.