Sto cercando di smaltire oggetto XmlWriter:Come posso smaltire System.Xml.XmlWriter in PowerShell
try
{
[System.Xml.XmlWriter] $writer = [System.Xml.XmlWriter]::Create('c:\some.xml')
}
finally
{
$writer.Dispose()
}
Errore:
Method invocation failed because [System.Xml.XmlWellFormedWriter] doesn't contain a method named 'Dispose'.
Dall'altra parte:
$writer -is [IDisposable]
# True
Cosa dovrei fare?
Avere un metodo protetto, come posso chiamarlo in PowerShell? Digitare cast non funziona '($ writer -as [IDisposable]). Dispose()'. Dovrei usare .Net Reflection API ?? – alex2k8
Chiama Chiudi invece di Disponi. Chiudi rilascia tutte le risorse. – Michael
Stai parlando del "male" 'Dispose'. Il ['Dispose' che desidera] (http://msdn.microsoft.com/en-us/library/bb357166.aspx) non è' protected'; è un'implementazione esplicita dell'interfaccia! Implementazioni di interfacce esplicite sono difficili da chiamare da PowerShell. Ma questo * hack * dovrebbe funzionare: '[IDisposable] .GetMethod (" Dispose "). Invoke ($ writer, @())'. –