2010-05-26 24 views
6

Có phương pháp rút ngắn tham chiếu không gian tên PowerShell không?PowerShell - Rút ngắn tên không gian tên để dễ dàng truy cập các loại

Nhập [RootNameSpace1.NameSpace2.Namepsace3+SomeEnum]::SomeValue đang đánh thuế và không phải là sự tuyệt vời của người dùng. Tôi nhận thấy rằng bạn có thể tham chiếu System đối tượng cấp không có vùng tên sao cho [Type]::GetType(... sẽ hoạt động. Có một số biểu hiện tôi có thể tạo hoặc lệnh tôi có thể sử dụng để rút ngắn không gian tên dài?

Trả lời

6

Bất kỳ phương pháp chấp nhận Enums sẽ chấp nhận chuỗi, nhưng điều này là dành cho Enums chỉ và nơi không có sự nhập nhằng (có nghĩa là không có các tình trạng quá tải khác với một chuỗi ký tự phù hợp trong thời trang này.)

Nếu bạn đang sử dụng PowerShell v2.0, bạn có thể (ab) sử dụng Bộ tăng tốc kiểu. Tôi viết blog về vấn đề này trước đây, và Joel Bennett thúc kỹ thuật của tôi trong một kịch bản tiện dụng:

http://poshcode.org/1869

-Oisin

+0

Đó chính xác là những gì tôi đang tìm kiếm. Cảm ơn –

5

loại dài dòng có thể được gán cho các biến và sau đó sử dụng thông qua các biến:

# enum values 
$rvk = [Microsoft.Win32.RegistryValueKind] 
$rvk::Binary 
$rvk::DWord 

# static members 
$con = [System.Console] 
$con::CursorLeft 
$con::WriteLine('Hello there') 

# just to be sure, look at types 
.{ 
    $rvk::Binary 
    $con::WriteLine 
    $con::CursorLeft 
} | 
% { $_.GetType() } 
+0

đó làm việc cho một giải pháp đơn giản. Tôi đã hy vọng có một cách để đạt được nó mà không có người dùng cuối của chúng tôi phải tạo ra các biến này hoặc không cần phải tạo chúng trong nội bộ và sau đó phơi bày một số loại tài liệu. Cảm ơn! –

Các vấn đề liên quan