entsorgen Ich versuche XmlWriter-Objekt zu entsorgen:Wie kann ich System.Xml.XmlWriter in Powershell
try
{
[System.Xml.XmlWriter] $writer = [System.Xml.XmlWriter]::Create('c:\some.xml')
}
finally
{
$writer.Dispose()
}
Fehler:
Method invocation failed because [System.Xml.XmlWellFormedWriter] doesn't contain a method named 'Dispose'.
Auf der anderen Seite:
$writer -is [IDisposable]
# True
Was soll ich machen?
eine geschützte Methode zu haben, wie kann ich es in Powershell anrufen? Typumwandlung funktioniert nicht '($ writer -as [IDisposable]). Dispose()'. Soll ich die .Net Reflection API verwenden? – alex2k8
Rufen Sie Close anstelle von Dispose auf. Close gibt alle Ressourcen frei. – Michael
Sie sprechen über das "falsche" 'Dispose'. Das ['Dispose', das er will] (http://msdn.microsoft.com/en-us/library/bb357166.aspx) ist nicht" geschützt "; es ist eine explizite Schnittstellenimplementierung! Explizite Schnittstellenimplementierungen sind nur schwer von PowerShell aus zu erreichen. Aber dieser * Hack * sollte funktionieren: '[IDisposable] .GetMethod (" Dispose "). Invoke ($ writer, @())'. –