Power Shellで使用するにはどうすればよいですか?
これはC#の動作例です
using (var conn = new SqlConnection(connString))
{
Console.WriteLine("InUsing");
}
私はPowershellでも同じことが必要です(動作していません):
Using-Object ($conn = New-Object System.Data.SqlClient.SqlConnection($connString)) {
Write-Warning -Message 'In Using';
}
以下を使用せずに動作しています:
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
ご協力ありがとうございます。
解決策は次のとおりです。
function Using-Object
{
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[AllowEmptyString()]
[AllowEmptyCollection()]
[AllowNull()]
[Object]
$InputObject,
[Parameter(Mandatory = $true)]
[scriptblock]
$ScriptBlock
)
try
{
. $ScriptBlock
}
finally
{
if ($null -ne $InputObject -and $InputObject -is [System.IDisposable])
{
$InputObject.Dispose()
}
}
}
私はこの解決策を見つけました ここ そして私にとってはうまくいきました。
ただし、基本的には、finallyブロックでの破棄の実装です。