Dot-Net

等效於 C# 在 powershell 中的“使用”關鍵字?

  • June 26, 2009

當我在 C# 的 .net-Framework 中使用另一個對象時,我可以通過使用 using 指令來節省大量輸入。

using FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It;

...


 var blurb = new Thingamabob();

...

那麼Powershell中有沒有辦法做類似的事情呢?我正在訪問很多 .net 對象,但不滿意必須輸入

$blurb = new-object FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It.Thingamabob;

每時每刻。

PowerShell 5.0(包含在 WMF5 或 Windows 10 及更高版本中)將using namespace結構添加到語言中。您可以像這樣在腳本中使用它:

#Require -Version 5.0
using namespace FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It
$blurb = [Thingamabob]::new()

#Require第一行的語句不是必須使用using namespace,但它會阻止腳本在 PS 4.0 及以下using namespace的語法錯誤處執行。)

在命名空間級別真的沒有這樣的東西。我經常將常用類型分配給變數,然後實例化它們:

$thingtype = [FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It.Thingamabob];
$blurb = New-Object $thingtype.FullName

如果該類型不會重複使用,可能不值得,但我相信這是你能做的最好的。

引用自:https://stackoverflow.com/questions/1048954