Tworzenie dostawcy elementów Windows PowerShell
W tym temacie opisano sposób tworzenia dostawcy Windows PowerShell, który może manipulować danymi w magazynie danych. W tym temacie elementy danych w magazynie są określane jako "elementy" magazynu danych. W związku z tym dostawca, który może manipulować danymi w magazynie, jest określany jako dostawca elementów Windows PowerShell.
Uwaga
Możesz pobrać plik źródłowy języka C# (AccessDBSampleProvider03.cs
) dla tego dostawcy przy użyciu zestawu Microsoft Windows Software Development Kit dla Windows Vista i składników środowiska uruchomieniowego .NET Framework 3.0. Aby uzyskać instrukcje dotyczące pobierania, zobacz How to Install Windows PowerShell and Download the Windows PowerShell SDK (Jak zainstalować Windows PowerShell i pobrać zestaw SDK Windows PowerShell).
Pobrane pliki źródłowe są dostępne w PowerShell Samples
katalogu. Aby uzyskać więcej informacji na temat innych implementacji dostawcy Windows PowerShell, zobacz Projektowanie dostawcy Windows PowerShell.
Dostawca elementów Windows PowerShell opisany w tym temacie pobiera elementy danych z bazy danych programu Access. W takim przypadku "element" jest tabelą w bazie danych programu Access lub wierszem w tabeli.
Definiowanie klasy dostawcy elementów Windows PowerShell
Dostawca elementów Windows PowerShell musi zdefiniować klasę .NET, która pochodzi z klasy bazowej System.Management.Automation.Provider.ItemCmdletProvider. Poniżej przedstawiono definicję klasy dostawcy elementów opisaną w tej sekcji.
[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : ItemCmdletProvider
Należy pamiętać, że w tej definicji klasy atrybut System.Management.Automation.Provider.CmdletProviderAttribute zawiera dwa parametry. Pierwszy parametr określa przyjazną dla użytkownika nazwę dostawcy, który jest używany przez Windows PowerShell. Drugi parametr określa Windows PowerShell określonych możliwości, które dostawca uwidacznia w środowisku uruchomieniowym Windows PowerShell podczas przetwarzania poleceń. W przypadku tego dostawcy nie ma dodanych Windows PowerShell określonych możliwości.
Definiowanie podstawowych funkcji
Zgodnie z opisem w temacie Design Your Windows PowerShell Provider (Projektowanie dostawcy Windows PowerShell) klasa System.Management.Automation.Provider.DriveCmdletProvider pochodzi z kilku innych klas, które zapewniły różne funkcje dostawcy. W związku z tym dostawca elementów Windows PowerShell musi zdefiniować wszystkie funkcje udostępniane przez te klasy.
Aby uzyskać więcej informacji na temat implementowania funkcji dodawania informacji inicjowania specyficznych dla sesji i wydawania zasobów używanych przez dostawcę, zobacz Tworzenie podstawowego dostawcy Windows PowerShell. Jednak większość dostawców, w tym dostawcę opisanego tutaj, może użyć domyślnej implementacji tej funkcji udostępnianej przez Windows PowerShell.
Aby dostawca elementów Windows PowerShell mógł manipulować elementami w magazynie, musi zaimplementować metody klasy bazowej System.Management.Automation.Provider.DriveCmdletProvider, aby uzyskać dostęp do magazynu danych. Aby uzyskać więcej informacji na temat implementowania tej klasy, zobacz Tworzenie dostawcy dysków Windows PowerShell.
Sprawdzanie poprawności ścieżki
Podczas wyszukiwania elementu danych środowisko uruchomieniowe Windows PowerShell dostarcza Windows PowerShell ścieżkę do dostawcy, zgodnie z definicją w sekcji "Pojęcia programu PSPath" w temacie How Windows PowerShell Works. Dostawca elementów Windows PowerShell musi zweryfikować ważność składniową i semantyczną dowolnej ścieżki przekazanej przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath. Ta metoda zwraca wartość true
, jeśli ścieżka jest prawidłowa, a false
w przeciwnym razie. Należy pamiętać, że implementacja tej metody nie powinna weryfikować istnienia elementu w ścieżce, ale tylko, że ścieżka jest składniowo i semantycznie poprawna.
Oto implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath dla tego dostawcy. Należy pamiętać, że ta implementacja wywołuje metodę pomocnika NormalizePath , aby przekonwertować wszystkie separatory w ścieżce na jednolitą.
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
Określanie, czy element istnieje
Po zweryfikowaniu ścieżki środowisko uruchomieniowe Windows PowerShell musi określić, czy element danych istnieje w tej ścieżce. Aby obsługiwać ten typ zapytania, dostawca elementów Windows PowerShell implementuje metodę System.Management.Automation.Provider.ItemCmdletProvider.ItemExists. Ta metoda zwraca true
element w określonej ścieżce i false
(wartość domyślna) w przeciwnym razie.
Oto implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.ItemExists dla tego dostawcy. Należy pamiętać, że ta metoda wywołuje metody pomocnika PathIsDrive, ChunkPath i GetTable oraz używa zdefiniowanego przez dostawcę obiektu 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
Należy pamiętać o implementowaniu elementu ItemExists
Następujące warunki mogą mieć zastosowanie do implementacji elementu System.Management.Automation.Provider.ItemCmdletProvider.ItemExists:
- Podczas definiowania klasy dostawcy dostawca elementu Windows PowerShell może zadeklarować możliwości dostawcy ,
ExpandWildcards``Filter
,Include
lubExclude
, z wyliczenia System.Management.Automation.Provider.ProviderCapabilities. W takich przypadkach implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.ItemExists musi zapewnić, że ścieżka przekazana do metody spełnia wymagania określonych możliwości. W tym celu metoda powinna uzyskać dostęp do odpowiedniej właściwości, na przykład właściwości System.Management.Automation.Provider.CmdletProvider.Exclude i System.Management.Automation.Provider.CmdletProvider.Include. - Implementacja tej metody powinna obsługiwać dowolną formę dostępu do elementu, który może sprawić, że element będzie widoczny dla użytkownika. Jeśli na przykład użytkownik ma dostęp do zapisu do pliku za pośrednictwem dostawcy systemu plików (dostarczonego przez Windows PowerShell), ale nie ma dostępu do odczytu, plik nadal istnieje i plik System.Management.Automation.Provider.ItemCmdletProvider.ItemExists zwraca wartość
true
. Implementacja może wymagać sprawdzenia elementu nadrzędnego, aby sprawdzić, czy element podrzędny może zostać wyliczony.
Dołączanie parametrów dynamicznych do polecenia cmdlet Test-Path
Test-Path
Czasami polecenie cmdlet, które wywołuje element System.Management.Automation.Provider.ItemCmdletProvider.ItemExists, wymaga dodatkowych parametrów określonych dynamicznie w czasie wykonywania. Aby zapewnić te parametry dynamiczne, dostawca elementów Windows PowerShell musi zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.ItemExistsDynamicParameters. Ta metoda pobiera parametry dynamiczne elementu w wskazanej ścieżce i zwraca obiekt zawierający właściwości i pola z atrybutami analizowania podobnymi do klasy cmdlet lub obiektu System.Management.Automation.RuntimeDefinedParameterDictionary. Środowisko uruchomieniowe Windows PowerShell używa zwróconego obiektu w celu dodania Test-Path
parametrów do polecenia cmdlet.
Ten dostawca elementów Windows PowerShell nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Pobieranie elementu
Aby pobrać element, dostawca elementu Windows PowerShell musi zastąpić metodę System.Management.Automation.Provider.ItemCmdletProvider.GetItem w celu obsługi wywołań z Get-Item
polecenia cmdlet. Ta metoda zapisuje element przy użyciu metody System.Management.Automation.Provider.CmdletProvider.WriteItemObject.
Oto implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.GetItem dla tego dostawcy. Należy pamiętać, że ta metoda używa metod pomocnika GetTable i GetRow do pobierania elementów, które są tabelami w bazie danych programu Access lub wierszach w tabeli danych.
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
Należy pamiętać o implementacji polecenia GetItem
Następujące warunki mogą dotyczyć implementacji elementu System.Management.Automation.Provider.ItemCmdletProvider.GetItem:
Podczas definiowania klasy dostawcy dostawca elementu Windows PowerShell może zadeklarować możliwości dostawcy ,
ExpandWildcards``Filter
,Include
lubExclude
, z wyliczenia System.Management.Automation.Provider.ProviderCapabilities. W takich przypadkach implementacja elementu System.Management.Automation.Provider.ItemCmdletProvider.GetItem musi zapewnić, że ścieżka przekazana do metody spełnia te wymagania. W tym celu metoda powinna uzyskać dostęp do odpowiedniej właściwości, na przykład właściwości System.Management.Automation.Provider.CmdletProvider.Exclude i System.Management.Automation.Provider.CmdletProvider.Include.Domyślnie zastąpienia tej metody nie powinny pobierać obiektów, które są zwykle ukryte przed użytkownikiem, chyba że właściwość System.Management.Automation.Provider.CmdletProvider.Force ma ustawioną wartość
true
. Na przykład metoda System.Management.Automation.Provider.ItemCmdletProvider.GetItem dostawcy systemu plików sprawdza właściwość System.Management.Automation.CmdletProvider.Force, zanim podejmie próbę wywołania elementu System.Management.Automation.Provider.CmdletProvider.WriteItemObject dla ukrytych lub systemowych plików.
Dołączanie parametrów dynamicznych do polecenia cmdlet Get-Item
Get-Item
Czasami polecenie cmdlet wymaga dodatkowych parametrów, które są określane dynamicznie w czasie wykonywania. Aby zapewnić te parametry dynamiczne, dostawca elementów Windows PowerShell musi zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters. Ta metoda pobiera parametry dynamiczne elementu w wskazanej ścieżce i zwraca obiekt zawierający właściwości i pola z atrybutami analizowania podobnymi do klasy cmdlet lub obiektu System.Management.Automation.RuntimeDefinedParameterDictionary. Środowisko uruchomieniowe Windows PowerShell używa zwróconego obiektu w celu dodania Get-Item
parametrów do polecenia cmdlet.
Ten dostawca nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Ustawianie elementu
Aby ustawić element, dostawca elementu Windows PowerShell musi zastąpić metodę System.Management.Automation.Provider.ItemCmdletProvider.SetItem w celu obsługi wywołań z Set-Item
polecenia cmdlet. Ta metoda ustawia wartość elementu w określonej ścieżce.
Ten dostawca nie udostępnia zastąpienia metody System.Management.Automation.Provider.ItemCmdletProvider.SetItem. Jednak poniżej przedstawiono domyślną implementację tej metody.
Należy pamiętać o implementacji elementu SetItem
Następujące warunki mogą mieć zastosowanie do implementacji elementu System.Management.Automation.Provider.ItemCmdletProvider.SetItem:
Podczas definiowania klasy dostawcy dostawca elementu Windows PowerShell może zadeklarować możliwości dostawcy ,
ExpandWildcards``Filter
,Include
lubExclude
, z wyliczenia System.Management.Automation.Provider.ProviderCapabilities. W takich przypadkach implementacja elementu System.Management.Automation.Provider.ItemCmdletProvider.SetItem musi upewnić się, że ścieżka przekazana do metody spełnia te wymagania. W tym celu metoda powinna uzyskać dostęp do odpowiedniej właściwości, na przykład właściwości System.Management.Automation.Provider.CmdletProvider.Exclude i System.Management.Automation.Provider.CmdletProvider.Include.Domyślnie zastąpienia tej metody nie powinny ustawiać ani zapisywać obiektów ukrytych przed użytkownikiem, chyba że właściwość System.Management.Automation.Provider.CmdletProvider.Force ma ustawioną
true
wartość . Błąd powinien zostać wysłany do metody System.Management.Automation.Provider.CmdletProvider.WriteError, jeśli ścieżka reprezentuje ukryty element, a parametr System.Management.Automation.Provider.CmdletProvider.Force jest ustawiony nafalse
wartość .Implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.SetItem powinna wywołać metodę System.Management.Automation.Provider.CmdletProvider.ShouldProcess i zweryfikować jej wartość zwracaną przed wprowadzeniem zmian w magazynie danych. Ta metoda służy do potwierdzania wykonania operacji po wprowadzeniu zmiany do magazynu danych, na przykład usuwania plików. Metoda System.Management.Automation.Provider.CmdletProvider.ShouldProcess wysyła nazwę zasobu, który ma zostać zmieniony na użytkownika, przy czym środowisko uruchomieniowe Windows PowerShell uwzględnia wszystkie ustawienia wiersza polecenia lub zmienne preferencji w określaniu, co powinno być wyświetlane.
Po wywołaniu metody System.Management.Automation.Provider.CmdletProvider.ShouldProcess zwraca
true
wartość , metoda System.Management.Automation.Provider.ItemCmdletProvider.SetItem powinna wywołać metodę System.Management.Automation.Provider.CmdletProvider.ShouldContinue. Ta metoda wysyła użytkownikowi komunikat, aby umożliwić opinię w celu sprawdzenia, czy operacja powinna być kontynuowana. Wywołanie elementu System.Management.Automation.Provider.CmdletProvider.ShouldContinue umożliwia dodatkowe sprawdzenie potencjalnie niebezpiecznych modyfikacji systemu.
Pobieranie parametrów dynamicznych dla elementu SetItem
Set-Item
Czasami polecenie cmdlet wymaga dodatkowych parametrów, które są określane dynamicznie w czasie wykonywania. Aby zapewnić te parametry dynamiczne, dostawca elementów Windows PowerShell musi zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters. Ta metoda pobiera parametry dynamiczne elementu w wskazanej ścieżce i zwraca obiekt zawierający właściwości i pola z atrybutami analizowania podobnymi do klasy cmdlet lub obiektu System.Management.Automation.RuntimeDefinedParameterDictionary. Środowisko uruchomieniowe Windows PowerShell używa zwróconego obiektu w celu dodania Set-Item
parametrów do polecenia cmdlet.
Ten dostawca nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Wyczyszczenie elementu
Aby wyczyścić element, dostawca elementów Windows PowerShell implementuje metodę System.Management.Automation.Provider.ItemCmdletProvider.ClearItem do obsługi wywołań z Clear-Item
polecenia cmdlet. Ta metoda usuwa element danych w określonej ścieżce.
Ten dostawca nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Kwestie, które należy pamiętać o implementowaniu rozwiązania ClearItem
Następujące warunki mogą dotyczyć implementacji elementu System.Management.Automation.Provider.ItemCmdletProvider.ClearItem:
Podczas definiowania klasy dostawcy dostawca elementu Windows PowerShell może zadeklarować możliwości dostawcy ,
ExpandWildcards``Filter
,Include
lubExclude
, z wyliczenia System.Management.Automation.Provider.ProviderCapabilities. W takich przypadkach implementacja elementu System.Management.Automation.Provider.ItemCmdletProvider.ClearItem musi zapewnić, że ścieżka przekazana do metody spełnia te wymagania. W tym celu metoda powinna uzyskać dostęp do odpowiedniej właściwości, na przykład właściwości System.Management.Automation.Provider.CmdletProvider.Exclude i System.Management.Automation.Provider.CmdletProvider.Include.Domyślnie zastąpienia tej metody nie powinny ustawiać ani zapisywać obiektów ukrytych przed użytkownikiem, chyba że właściwość System.Management.Automation.Provider.CmdletProvider.Force ma ustawioną
true
wartość . Błąd powinien zostać wysłany do metody System.Management.Automation.Provider.CmdletProvider.WriteError, jeśli ścieżka reprezentuje element ukryty przed użytkownikiem, a parametr System.Management.Automation.Provider.CmdletProvider.Force jest ustawiony nafalse
wartość .Implementacja metody System.Management.Automation.Provider.ItemCmdletProvider.SetItem powinna wywołać metodę System.Management.Automation.Provider.CmdletProvider.ShouldProcess i zweryfikować jej wartość zwracaną przed wprowadzeniem zmian w magazynie danych. Ta metoda służy do potwierdzania wykonania operacji po wprowadzeniu zmiany do magazynu danych, na przykład usuwania plików. Metoda System.Management.Automation.Provider.CmdletProvider.ShouldProcess wysyła nazwę zasobu, który ma zostać zmieniony na użytkownika, przy użyciu środowiska uruchomieniowego Windows PowerShell i obsługi dowolnych ustawień wiersza polecenia lub zmiennych preferencji w określaniu, co powinno być wyświetlane.
Po wywołaniu metody System.Management.Automation.Provider.CmdletProvider.ShouldProcess zwraca
true
wartość , metoda System.Management.Automation.Provider.ItemCmdletProvider.SetItem powinna wywołać metodę System.Management.Automation.Provider.CmdletProvider.ShouldContinue. Ta metoda wysyła użytkownikowi komunikat, aby umożliwić opinię w celu sprawdzenia, czy operacja powinna być kontynuowana. Wywołanie elementu System.Management.Automation.Provider.CmdletProvider.ShouldContinue umożliwia dodatkowe sprawdzenie potencjalnie niebezpiecznych modyfikacji systemu.
Pobieranie parametrów dynamicznych dla funkcji ClearItem
Clear-Item
Czasami polecenie cmdlet wymaga dodatkowych parametrów, które są określane dynamicznie w czasie wykonywania. Aby zapewnić te parametry dynamiczne, dostawca elementów Windows PowerShell musi zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters. Ta metoda pobiera parametry dynamiczne elementu w wskazanej ścieżce i zwraca obiekt zawierający właściwości i pola z atrybutami analizowania podobnymi do klasy cmdlet lub obiektu System.Management.Automation.RuntimeDefinedParameterDictionary. Środowisko uruchomieniowe Windows PowerShell używa zwróconego obiektu w celu dodania Clear-Item
parametrów do polecenia cmdlet.
Ten dostawca elementów nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Wykonywanie akcji domyślnej dla elementu
Dostawca elementów Windows PowerShell może zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction w celu obsługi wywołań z Invoke-Item
polecenia cmdlet, co umożliwia dostawcy wykonanie domyślnej akcji dla elementu w określonej ścieżce. Na przykład dostawca systemu plików może użyć tej metody do wywołania klasy ShellExecute dla określonego elementu.
Ten dostawca nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Należy pamiętać o implementowaniu funkcji InvokeDefaultAction
Następujące warunki mogą dotyczyć implementacji elementu System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction:
Podczas definiowania klasy dostawcy dostawca elementu Windows PowerShell może zadeklarować możliwości dostawcy ,
ExpandWildcards``Filter
,Include
lubExclude
, z wyliczenia System.Management.Automation.Provider.ProviderCapabilities. W takich przypadkach implementacja elementu System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction musi upewnić się, że ścieżka przekazana do metody spełnia te wymagania. W tym celu metoda powinna uzyskać dostęp do odpowiedniej właściwości, na przykład właściwości System.Management.Automation.Provider.CmdletProvider.Exclude i System.Management.Automation.Provider.CmdletProvider.Include.Domyślnie zastąpienia tej metody nie powinny ustawiać ani zapisywać obiektów ukrytych przed użytkownikiem, chyba że właściwość System.Management.Automation.Provider.CmdletProvider.Force ma ustawioną wartość
true
. Błąd powinien zostać wysłany do metody System.Management.Automation.Provider.CmdletProvider.WriteError, jeśli ścieżka reprezentuje element ukryty przed użytkownikiem, a parametr System.Management.Automation.Provider.CmdletProvider.Force jest ustawiony nafalse
wartość .
Pobieranie parametrów dynamicznych dla funkcji InvokeDefaultAction
Invoke-Item
Czasami polecenie cmdlet wymaga dodatkowych parametrów, które są określane dynamicznie w czasie wykonywania. Aby zapewnić te parametry dynamiczne, dostawca elementów Windows PowerShell musi zaimplementować metodę System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters. Ta metoda pobiera parametry dynamiczne elementu w wskazanej ścieżce i zwraca obiekt zawierający właściwości i pola z atrybutami analizowania podobnymi do klasy cmdlet lub obiektu System.Management.Automation.RuntimeDefinedParameterDictionary. Środowisko uruchomieniowe Windows PowerShell używa zwróconego obiektu w celu dodania Invoke-Item
parametrów dynamicznych do polecenia cmdlet.
Ten dostawca elementów nie implementuje tej metody. Jednak poniższy kod jest domyślną implementacją tej metody.
Implementowanie metod i klas pomocnika
Ten dostawca elementów implementuje kilka metod i klas pomocników, które są używane przez publiczne metody zastąpienia zdefiniowane przez Windows PowerShell. Kod dla tych metod i klas pomocników jest wyświetlany w sekcji Przykład kodu .
NormalizePath, metoda
Ten dostawca elementów implementuje metodę pomocnika NormalizePath , aby upewnić się, że ścieżka ma spójny format. Określony format używa ukośnika odwrotnego (\
) jako separatora.
PathIsDrive, metoda
Ten dostawca elementów implementuje metodę pomocnika PathIsDrive , aby określić, czy określona ścieżka jest w rzeczywistości nazwą dysku.
ChunkPath, metoda
Ten dostawca elementów implementuje metodę pomocnika ChunkPath , która dzieli określoną ścieżkę, aby dostawca mógł zidentyfikować jego poszczególne elementy. Zwraca tablicę składającą się z elementów ścieżki.
GetTable, metoda
Ten dostawca elementów implementuje metodę pomocnika GetTables , która zwraca obiekt DatabaseTableInfo , który reprezentuje informacje o tabeli określonej w wywołaniu.
GetRow, metoda
Metoda System.Management.Automation.Provider.ItemCmdletProvider.GetItem tego dostawcy elementów wywołuje metodę pomocnika GetRows. Ta metoda pomocnika pobiera obiekt DatabaseRowInfo , który reprezentuje informacje o określonym wierszu w tabeli.
DatabaseTableInfo, klasa
Ten dostawca elementów definiuje klasę DatabaseTableInfo , która reprezentuje kolekcję informacji w tabeli danych w bazie danych. Ta klasa jest podobna do klasy System.IO.Directoryinfo .
Dostawca przykładowego elementu definiuje metodę DatabaseTableInfo.GetTables , która zwraca kolekcję obiektów informacji o tabeli definiujących tabele w bazie danych. Ta metoda zawiera blok try/catch, aby upewnić się, że każdy błąd bazy danych jest wyświetlany jako wiersz z zerowymi wpisami.
DatabaseRowInfo, klasa
Ten dostawca elementów definiuje klasę pomocnika DatabaseRowInfo , która reprezentuje wiersz w tabeli bazy danych. Ta klasa jest podobna do klasy System.IO.FileInfo .
Przykładowy dostawca definiuje metodę DatabaseRowInfo.GetRows , aby zwrócić kolekcję obiektów informacji o wierszach dla określonej tabeli. Ta metoda zawiera blok try/catch do wyjątków pułapki. Wszelkie błędy spowodują brak informacji o wierszu.
Przykład kodu
Aby uzyskać pełny przykładowy kod, zobacz AccessDbProviderSample03 Code Sample (Przykład kodu).
Definiowanie typów obiektów i formatowanie
Podczas pisania dostawcy może być konieczne dodanie elementów członkowskich do istniejących obiektów lub zdefiniowanie nowych obiektów. Po zakończeniu utwórz plik Typy, który Windows PowerShell może użyć do identyfikowania elementów członkowskich obiektu i pliku Formatu, który definiuje sposób wyświetlania obiektu. Aby uzyskać więcej informacji, zobacz Rozszerzanie typów obiektów i formatowanie.
Tworzenie dostawcy Windows PowerShell
Zobacz Jak rejestrować polecenia cmdlet, dostawców i aplikacje hosta.
Testowanie dostawcy Windows PowerShell
Po zarejestrowaniu tego dostawcy elementów Windows PowerShell za pomocą Windows PowerShell można przetestować tylko podstawową i stację dysków dostawcy. Aby przetestować manipulowanie elementami, należy również zaimplementować funkcje kontenera opisane w temacie Implementowanie dostawcy Windows PowerShell kontenera.
Zobacz też
- Windows PowerShell SDK
- Windows PowerShell — przewodnik programisty
- Tworzenie dostawców Windows PowerShell
- Projektowanie dostawcy Windows PowerShell
- Rozszerzanie typów obiektów i formatowanie
- Jak działa Windows PowerShell
- Tworzenie dostawcy Windows PowerShell kontenera
- Tworzenie dostawcy Windows PowerShell dysku
- Jak rejestrować polecenia cmdlet, dostawców i aplikacje hosta
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla