C# 如何在powershell中实现using语句?

C# 如何在powershell中实现using语句?,c#,powershell,C#,Powershell,如何在power shell中编写 这是C语言中的工作示例# 我在Powershell中需要相同的(不工作): 它在不使用以下各项的情况下工作: $conn = New-Object System.Data.SqlClient.SqlConnection($connString) 谢谢您的帮助。这里有一个解决方案,通过在finally块中调用.Dispose(),可以解决此问题: 使用对象的函数 { [CmdletBinding()] param( [参数(必需=$true)] [AllowE

如何在power shell中编写

这是C语言中的工作示例#

我在Powershell中需要相同的(不工作):

它在不使用以下各项的情况下工作:

$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
谢谢您的帮助。

这里有一个解决方案,通过在finally块中调用
.Dispose()
,可以解决此问题:

使用对象的函数
{
[CmdletBinding()]
param(
[参数(必需=$true)]
[AllowEmptyString()]
[AllowEmptyCollection()]
[AllowNull()]
[对象]
$InputObject,
[参数(必需=$true)]
[脚本块]
$ScriptBlock
)
尝试
{
$ScriptBlock
}
最后
{
如果($null-ne$InputObject-和$InputObject-为[System.IDisposable])
{
$InputObject.Dispose()
}
}
}
下面是如何使用它:

Using-Object ($streamWriter = New-Object System.IO.StreamWriter("$pwd\newfile.txt")) {
    $streamWriter.WriteLine('Line written inside Using block.')
}

不工作>要删除“System.Data.SqlClient.”的问题是什么?使用语句确保通过调用Dispose of SqlConnection对象释放所有资源…..因此您可以在powershell中调用Dispose()follow by Close(),而不是Using@Viru:我知道我可以执行Dispose()/Close(),但如果可能,我希望使用。非工作方式break@Patrick错误是:术语“Using Object”无法识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。谢谢。您能解释一下$ErrorActionPreference是什么意思吗?默认情况下,$ErrorActionPreference设置为继续,然后在尝试捕获中,您将只捕获临界错误。(您实际上只捕获停止当前流的错误)如果使用-erroraction,则可以使用commandlet覆盖错误操作。但是我在这里犯了一个错误,您没有使用catch块,因此不需要调整错误操作首选项。我将编辑答案!
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
Using-Object ($streamWriter = New-Object System.IO.StreamWriter("$pwd\newfile.txt")) {
    $streamWriter.WriteLine('Line written inside Using block.')
}