Een Windows PowerShell-itemprovider maken
In dit onderwerp wordt beschreven hoe u een Windows PowerShell-provider maakt waarmee de gegevens in een gegevensarchief kunnen worden bewerkt. In dit onderwerp worden de elementen van gegevens in het archief aangeduid als de 'items' van het gegevensarchief. Als gevolg hiervan wordt een provider genoemd die de gegevens in het archief kan bewerken een Windows PowerShell itemprovider.
Notitie
U kunt het C#-bronbestand (AccessDBSampleProvider03.cs) voor deze provider downloaden met behulp van de Microsoft Windows Software Development Kit voor Windows Vista en .NET Framework 3.0 Runtime Components. Zie Windows PowerShell installeren en de Windows PowerShell SDK downloaden voor downloadinstructies.
De gedownloade bronbestanden zijn beschikbaar in de PowerShell Samples map. Zie Uw Windows PowerShell-provider ontwerpen voor meer informatie over andere Windows PowerShell providerimplementaties.
De Windows PowerShell itemprovider die in dit onderwerp wordt beschreven, haalt gegevens op uit een Access-database. In dit geval is een item een tabel in de Access-database of een rij in een tabel.
De Windows PowerShell-itemproviderklasse definiëren
Een Windows PowerShell itemprovider moet een .NET-klasse definiëren die is afgeleid van de basisklasse System.Management.Automation.Provider.ItemCmdletProvider. Hier volgt de klassedefinitie voor de itemprovider die in deze sectie wordt beschreven.
[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : ItemCmdletProvider
Houd er rekening mee dat het kenmerk System.Management.Automation.Provider.CmdletProviderAttribute in deze klassedefinitie twee parameters bevat. Met de eerste parameter wordt een gebruiksvriendelijke naam opgegeven voor de provider die wordt gebruikt door Windows PowerShell. Met de tweede parameter geeft u de Windows PowerShell specifieke mogelijkheden op die de provider beschikbaar maakt voor de Windows PowerShell runtime tijdens het verwerken van opdrachten. Voor deze provider zijn er geen Windows PowerShell specifieke mogelijkheden toegevoegd.
Basisfunctionaliteit definiëren
Zoals beschreven in Uw Windows PowerShell-provider ontwerpen, is de klasse System.Management.Automation.Provider.DriveCmdletProvider afgeleid van verschillende andere klassen die verschillende providerfunctionaliteit bieden. Een Windows PowerShell itemprovider moet daarom alle functionaliteit van deze klassen definiëren.
Zie Een Basic Windows PowerShell Provider maken voor meer informatie over het implementeren van functionaliteit voor het toevoegen van sessiespecifieke initialisatiegegevens en het vrijgeven van resources die door de provider worden gebruikt. De meeste providers, waaronder de provider die hier wordt beschreven, kunnen echter de standaardimplementatie van deze functionaliteit gebruiken die wordt geleverd door Windows PowerShell.
Voordat de Windows PowerShell itemprovider de items in het archief kan bewerken, moet deze de methoden van de basisklasse System.Management.Automation.Provider.DriveCmdletProvider implementeren om toegang te krijgen tot het gegevensarchief. Zie Een Windows PowerShell Drive Provider maken voor meer informatie over het implementeren van deze klasse.
Controleren op padvaliditeit
Wanneer u op zoek bent naar een gegevensitem, maakt de Windows PowerShell runtime een Windows PowerShell pad naar de provider, zoals gedefinieerd in de sectie PSPath-concepten van Hoe Windows PowerShell werkt. Een Windows PowerShell itemprovider moet de syntactische en semantische geldigheid controleren van een pad dat eraan wordt doorgegeven door de methode System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath te implementeren. Deze methode retourneert true als het pad geldig is en false anders. Houd er rekening mee dat de implementatie van deze methode het bestaan van het item op het pad niet mag verifiëren, maar alleen dat het pad syntactisch en semantisch juist is.
Hier volgt de implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.IsValidPath voor deze provider. Houd er rekening mee dat deze implementatie een normalizePath-helpermethode aanroept om alle scheidingstekens in het pad te converteren naar een uniform.
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
Bepalen of een item bestaat
Nadat het pad is geverifieerd, moet de Windows PowerShell runtime bepalen of er een gegevensitem op dat pad bestaat. Ter ondersteuning van dit type query implementeert de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.ItemExists. Deze methode retourneert true een item dat wordt gevonden op het opgegeven pad en false (standaard) anders.
Hier volgt de implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.ItemExists voor deze provider. Houd er rekening mee dat met deze methode de helpermethoden PathIsDrive, ChunkPath en GetTable worden aangeroepen en een door de provider gedefinieerd DatabaseTableInfo-object wordt gebruikt.
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
Dingen die u moet onthouden over het implementeren van ItemExists
De volgende voorwaarden kunnen van toepassing zijn op uw implementatie van System.Management.Automation.Provider.ItemCmdletProvider.ItemExists:
- Wanneer u de providerklasse definieert, kan een Windows PowerShell itemprovider providermogelijkheden declareren van
ExpandWildcards,Filter``IncludeofExclude, van de opsomming System.Management.Automation.Provider.ProviderCapabilities. In deze gevallen moet de implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.ItemExists ervoor zorgen dat het pad dat wordt doorgegeven aan de methode voldoet aan de vereisten van de opgegeven mogelijkheden. Hiervoor moet de methode toegang krijgen tot de juiste eigenschap, bijvoorbeeld de eigenschappen System.Management.Automation.Provider.CmdletProvider.Exclude en System.Management.Automation.Provider.CmdletProvider.Include . - De implementatie van deze methode moet elke vorm van toegang tot het item afhandelen waardoor het item mogelijk zichtbaar is voor de gebruiker. Als een gebruiker bijvoorbeeld schrijftoegang heeft tot een bestand via de bestandssysteemprovider (geleverd door Windows PowerShell), maar geen leestoegang heeft, bestaat het bestand nog steeds en retourneert
trueSystem.Management.Automation.Provider.ItemCmdletProvider.ItemExists. Voor uw implementatie moet u mogelijk een bovenliggend item controleren om te zien of het onderliggende item kan worden geïnventariseerd.
Dynamische parameters koppelen aan de Test-Path-cmdlet
Soms vereist de Test-Path cmdlet die System.Management.Automation.Provider.ItemCmdletProvider.ItemExists aanvullende parameters vereist die dynamisch tijdens runtime worden opgegeven. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.ItemExistsDynamicParameters implementeren. Met deze methode worden de dynamische parameters voor het item opgehaald op het aangegeven pad en wordt een object geretourneerd met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell runtime gebruikt het geretourneerde object om de parameters toe te voegen aan de Test-Path cmdlet.
Deze Windows PowerShell itemprovider implementeert deze methode niet. De volgende code is echter de standaardimplementatie van deze methode.
Een item ophalen
Als u een item wilt ophalen, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.GetItem overschrijven om aanroepen van de Get-Item cmdlet te ondersteunen. Met deze methode wordt het item geschreven met behulp van de methode System.Management.Automation.Provider.CmdletProvider.WriteItemObject .
Hier volgt de implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.GetItem voor deze provider. Houd er rekening mee dat deze methode de helpermethoden GetTable en GetRow gebruikt om items op te halen die tabellen zijn in de Access-database of rijen in een gegevenstabel.
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
Dingen die u moet onthouden over het implementeren van GetItem
De volgende voorwaarden kunnen van toepassing zijn op een implementatie van System.Management.Automation.Provider.ItemCmdletProvider.GetItem:
Wanneer u de providerklasse definieert, kan een Windows PowerShell itemprovider providermogelijkheden declareren van
ExpandWildcards,Filter``IncludeofExclude, van de opsomming System.Management.Automation.Provider.ProviderCapabilities. In deze gevallen moet de implementatie van System.Management.Automation.Provider.ItemCmdletProvider.GetItem ervoor zorgen dat het pad dat wordt doorgegeven aan de methode voldoet aan deze vereisten. Hiervoor moet de methode toegang krijgen tot de juiste eigenschap, bijvoorbeeld de eigenschappen System.Management.Automation.Provider.CmdletProvider.Exclude en System.Management.Automation.Provider.CmdletProvider.Include .Standaard mogen onderdrukkingen van deze methode geen objecten ophalen die over het algemeen verborgen zijn voor de gebruiker, tenzij de eigenschap System.Management.Automation.Provider.CmdletProvider.Force is ingesteld op
true. De methode System.Management.Automation.Provider.ItemCmdletProvider.GetItem voor de bestandssysteemprovider controleert bijvoorbeeld de eigenschap System.Management.Automation.Provider.CmdletProvider.Force voordat wordt geprobeerd System.Management.Automation.Provider.CmdletProvider.WriteItemObject aan te roepen voor verborgen bestanden of systeembestanden.
Dynamische parameters koppelen aan de Get-Item-cmdlet
Soms vereist de Get-Item cmdlet aanvullende parameters die dynamisch worden opgegeven tijdens runtime. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters implementeren. Met deze methode worden de dynamische parameters voor het item opgehaald op het aangegeven pad en wordt een object geretourneerd met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell runtime gebruikt het geretourneerde object om de parameters toe te voegen aan de Get-Item cmdlet.
Deze methode wordt niet door deze provider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Een item instellen
Als u een item wilt instellen, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem overschrijven om aanroepen van de Set-Item cmdlet te ondersteunen. Met deze methode wordt de waarde van het item op het opgegeven pad ingesteld.
Deze provider biedt geen onderdrukking voor de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem . Het volgende is echter de standaardimplementatie van deze methode.
Dingen die u moet onthouden over het implementeren van SetItem
De volgende voorwaarden kunnen van toepassing zijn op uw implementatie van System.Management.Automation.Provider.ItemCmdletProvider.SetItem:
Wanneer u de providerklasse definieert, kan een Windows PowerShell itemprovider providermogelijkheden declareren van
ExpandWildcards,Filter``IncludeofExclude, van de opsomming System.Management.Automation.Provider.ProviderCapabilities. In deze gevallen moet de implementatie van System.Management.Automation.Provider.ItemCmdletProvider.SetItem ervoor zorgen dat het pad dat wordt doorgegeven aan de methode voldoet aan deze vereisten. Hiervoor moet de methode toegang krijgen tot de juiste eigenschap, bijvoorbeeld de eigenschappen System.Management.Automation.Provider.CmdletProvider.Exclude en System.Management.Automation.Provider.CmdletProvider.Include .Standaard mogen onderdrukkingen van deze methode geen objecten instellen of schrijven die verborgen zijn voor de gebruiker, tenzij de eigenschap System.Management.Automation.Provider.CmdletProvider.Force is ingesteld op
true. Er moet een fout worden verzonden naar de methode System.Management.Automation.Provider.CmdletProvider.WriteError als het pad een verborgen item vertegenwoordigt en System.Management.Automation.Provider.CmdletProvider.Force is ingesteld opfalse.De implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem moet System.Management.Automation.Provider.CmdletProvider.ShouldProcess aanroepen en de retourwaarde controleren voordat u wijzigingen aanbrengt in het gegevensarchief. Deze methode wordt gebruikt om de uitvoering van een bewerking te bevestigen wanneer er een wijziging wordt aangebracht in het gegevensarchief, bijvoorbeeld het verwijderen van bestanden. De methode System.Management.Automation.Provider.CmdletProvider.ShouldProcess verzendt de naam van de resource die moet worden gewijzigd in de gebruiker, waarbij de Windows PowerShell runtime rekening houdt met eventuele opdrachtregelinstellingen of voorkeursvariabelen bij het bepalen wat er moet worden weergegeven.
Nadat de aanroep van System.Management.Automation.Provider.CmdletProvider.ShouldProcess is geretourneerd
true, moet de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem de methode System.Management.Automation.Provider.CmdletProvider.ShouldContinue aanroepen. Met deze methode wordt een bericht naar de gebruiker verzonden om feedback toe te staan om te controleren of de bewerking moet worden voortgezet. De aanroep van System.Management.Automation.Provider.CmdletProvider.ShouldContinue biedt een extra controle op mogelijk gevaarlijke systeemwijzigingen.
Dynamische parameters ophalen voor SetItem
Soms vereist de Set-Item cmdlet aanvullende parameters die dynamisch worden opgegeven tijdens runtime. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters implementeren. Met deze methode worden de dynamische parameters voor het item opgehaald op het aangegeven pad en wordt een object geretourneerd met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell runtime gebruikt het geretourneerde object om de parameters toe te voegen aan de Set-Item cmdlet.
Deze methode wordt niet door deze provider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Een item wissen
Als u een item wilt wissen, implementeert de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.ClearItem om aanroepen van de Clear-Item cmdlet te ondersteunen. Met deze methode wordt het gegevensitem op het opgegeven pad gewist.
Deze methode wordt niet door deze provider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Dingen die u moet onthouden over het implementeren van ClearItem
De volgende voorwaarden kunnen van toepassing zijn op een implementatie van System.Management.Automation.Provider.ItemCmdletProvider.ClearItem:
Wanneer u de providerklasse definieert, kan een Windows PowerShell itemprovider providermogelijkheden declareren van
ExpandWildcards,Filter``IncludeofExclude, van de opsomming System.Management.Automation.Provider.ProviderCapabilities. In deze gevallen moet de implementatie van System.Management.Automation.Provider.ItemCmdletProvider.ClearItem ervoor zorgen dat het pad dat wordt doorgegeven aan de methode voldoet aan deze vereisten. Hiervoor moet de methode toegang krijgen tot de juiste eigenschap, bijvoorbeeld de eigenschappen System.Management.Automation.Provider.CmdletProvider.Exclude en System.Management.Automation.Provider.CmdletProvider.Include .Standaard mogen onderdrukkingen van deze methode geen objecten instellen of schrijven die verborgen zijn voor de gebruiker, tenzij de eigenschap System.Management.Automation.Provider.CmdletProvider.Force is ingesteld op
true. Er moet een fout worden verzonden naar de methode System.Management.Automation.Provider.CmdletProvider.WriteError als het pad een item vertegenwoordigt dat verborgen is voor de gebruiker en System.Management.Automation.Provider.CmdletProvider.Force is ingesteld opfalse.De implementatie van de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem moet System.Management.Automation.Provider.CmdletProvider.ShouldProcess aanroepen en de retourwaarde controleren voordat u wijzigingen aanbrengt in het gegevensarchief. Deze methode wordt gebruikt om de uitvoering van een bewerking te bevestigen wanneer er een wijziging wordt aangebracht in het gegevensarchief, bijvoorbeeld het verwijderen van bestanden. De methode System.Management.Automation.Provider.CmdletProvider.ShouldProcess verzendt de naam van de resource die moet worden gewijzigd in de gebruiker, met de Windows PowerShell runtime en verwerkt eventuele opdrachtregelinstellingen of voorkeursvariabelen om te bepalen wat er moet worden weergegeven.
Nadat de aanroep van System.Management.Automation.Provider.CmdletProvider.ShouldProcess is geretourneerd
true, moet de methode System.Management.Automation.Provider.ItemCmdletProvider.SetItem de methode System.Management.Automation.Provider.CmdletProvider.ShouldContinue aanroepen. Met deze methode wordt een bericht naar de gebruiker verzonden om feedback toe te staan om te controleren of de bewerking moet worden voortgezet. De aanroep van System.Management.Automation.Provider.CmdletProvider.ShouldContinue biedt een extra controle op mogelijk gevaarlijke systeemwijzigingen.
Dynamische parameters ophalen voor ClearItem
Soms vereist de Clear-Item cmdlet aanvullende parameters die dynamisch worden opgegeven tijdens runtime. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters implementeren. Met deze methode worden de dynamische parameters voor het item opgehaald op het aangegeven pad en wordt een object geretourneerd met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell runtime gebruikt het geretourneerde object om de parameters toe te voegen aan de Clear-Item cmdlet.
Deze methode wordt niet door deze itemprovider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Een standaardactie uitvoeren voor een item
Een Windows PowerShell itemprovider kan de methode System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction implementeren ter ondersteuning van aanroepen vanuit de Invoke-Item cmdlet, waardoor de provider een standaardactie kan uitvoeren voor het item op het opgegeven pad. De provider van het bestandssysteem kan bijvoorbeeld deze methode gebruiken om ShellExecute aan te roepen voor een specifiek item.
Deze methode wordt niet door deze provider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Dingen die u moet onthouden over het implementeren van InvokeDefaultAction
De volgende voorwaarden kunnen van toepassing zijn op een implementatie van System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction:
Wanneer u de providerklasse definieert, kan een Windows PowerShell itemprovider providermogelijkheden declareren van
ExpandWildcards,Filter``IncludeofExclude, van de opsomming System.Management.Automation.Provider.ProviderCapabilities. In deze gevallen moet de implementatie van System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultAction ervoor zorgen dat het pad dat aan de methode wordt doorgegeven aan deze vereisten voldoet. Hiervoor moet de methode toegang krijgen tot de juiste eigenschap, bijvoorbeeld de eigenschappen System.Management.Automation.Provider.CmdletProvider.Exclude en System.Management.Automation.Provider.CmdletProvider.Include .Standaard mogen onderdrukkingen van deze methode geen objecten instellen of schrijven die verborgen zijn voor de gebruiker, tenzij de eigenschap System.Management.Automation.Provider.CmdletProvider.Force is ingesteld op
true. Er moet een fout worden verzonden naar de methode System.Management.Automation.Provider.CmdletProvider.WriteError als het pad een item vertegenwoordigt dat verborgen is voor de gebruiker en System.Management.Automation.Provider.CmdletProvider.Force is ingesteld opfalse.
Dynamische parameters ophalen voor InvokeDefaultAction
Soms vereist de Invoke-Item cmdlet aanvullende parameters die dynamisch worden opgegeven tijdens runtime. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell itemprovider de methode System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters implementeren. Met deze methode worden de dynamische parameters voor het item opgehaald op het aangegeven pad en wordt een object geretourneerd met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell runtime gebruikt het geretourneerde object om de dynamische parameters toe te voegen aan de Invoke-Item cmdlet.
Deze methode wordt niet door deze itemprovider geïmplementeerd. De volgende code is echter de standaardimplementatie van deze methode.
Helpermethoden en -klassen implementeren
Deze itemprovider implementeert verschillende helpermethoden en -klassen die worden gebruikt door de openbare onderdrukkingsmethoden die zijn gedefinieerd door Windows PowerShell. De code voor deze helpermethoden en -klassen wordt weergegeven in de sectie Codevoorbeeld .
NormalizePath-methode
Deze itemprovider implementeert een NormalizePath-helpermethode om ervoor te zorgen dat het pad een consistente indeling heeft. De opgegeven indeling maakt gebruik van een backslash (\) als scheidingsteken.
PathIsDrive-methode
Deze itemprovider implementeert een PathIsDrive-helpermethode om te bepalen of het opgegeven pad daadwerkelijk de naam van het station is.
Methode ChunkPath
Deze itemprovider implementeert een ChunkPath-helpermethode waarmee het opgegeven pad wordt gesplitst, zodat de provider de afzonderlijke elementen kan identificeren. Hiermee wordt een matrix geretourneerd die bestaat uit de padelementen.
Methode GetTable
Deze itemprovider implementeert de helpermethode GetTables die een DatabaseTableInfo-object retourneert dat informatie vertegenwoordigt over de tabel die is opgegeven in de aanroep.
Methode GetRow
De methode System.Management.Automation.Provider.ItemCmdletProvider.GetItem van deze itemprovider roept de GetRows-helpermethode aan. Met deze helpermethode wordt een DatabaseRowInfo-object opgehaald dat informatie vertegenwoordigt over de opgegeven rij in de tabel.
DatabaseTableInfo-klasse
Deze itemprovider definieert een DatabaseTableInfo-klasse die een verzameling informatie in een gegevenstabel in de database vertegenwoordigt. Deze klasse is vergelijkbaar met de klasse System.IO.Directoryinfo .
De provider van het voorbeelditem definieert een DatabaseTableInfo.GetTables-methode die een verzameling tabelinformatieobjecten retourneert die de tabellen in de database definiëren. Deze methode bevat een try/catch-blok om ervoor te zorgen dat elke databasefout wordt weergegeven als een rij met nul vermeldingen.
DatabaseRowInfo-klasse
Deze itemprovider definieert de Helper-klasse DatabaseRowInfo die een rij in een tabel van de database vertegenwoordigt. Deze klasse is vergelijkbaar met de klasse System.IO.FileInfo .
De voorbeeldprovider definieert een DatabaseRowInfo.GetRows-methode om een verzameling rijgegevensobjecten voor de opgegeven tabel te retourneren. Deze methode bevat een try/catch-blok om uitzonderingen te ondervangen. Eventuele fouten resulteren in geen rijgegevens.
Codevoorbeeld
Zie AccessDbProviderSample03-codevoorbeeld voor volledige voorbeeldcode.
Objecttypen en -opmaak definiëren
Bij het schrijven van een provider kan het nodig zijn om leden toe te voegen aan bestaande objecten of om nieuwe objecten te definiëren. Wanneer u klaar bent, maakt u een bestandstype dat Windows PowerShell kunt gebruiken om de leden van het object en een indelingsbestand te identificeren waarmee wordt gedefinieerd hoe het object wordt weergegeven. Zie Objecttypen en opmaak uitbreiden voor meer informatie.
De Windows PowerShell-provider bouwen
Zie Cmdlets, providers en hosttoepassingen registreren.
De Windows PowerShell-provider testen
Wanneer deze Windows PowerShell itemprovider is geregistreerd bij Windows PowerShell, kunt u alleen de basis- en stationsfunctionaliteit van de provider testen. Als u de manipulatie van items wilt testen, moet u ook containerfunctionaliteit implementeren die wordt beschreven in Het implementeren van een container Windows PowerShell Provider.
Zie ook
- Windows PowerShell SDK
- Handleiding voor Windows PowerShell-programmeurs
- Windows PowerShell-providers maken
- Uw Windows PowerShell-provider ontwerpen
- Objecttypen en opmaak uitbreiden
- Hoe Windows PowerShell werkt
- Een containerprovider maken Windows PowerShell
- Een Drive Windows PowerShell-provider maken
- Cmdlets, providers en hosttoepassingen registreren
Feedback
Feedback verzenden en weergeven voor