Tạo Nhà cung cấp Windows PowerShell cơ bản
Chủ đề này là điểm khởi đầu để tìm hiểu cách tạo nhà cung cấp Windows PowerShell. Nhà cung cấp cơ bản được mô tả ở đây cung cấp các phương thức để bắt đầu và dừng nhà cung cấp và mặc dù nhà cung cấp này không cung cấp phương tiện để truy cập vào kho dữ liệu hoặc để lấy hoặc đặt dữ liệu trong kho dữ liệu, nhưng nó cung cấp chức năng cơ bản được yêu cầu bởi tất cả các nhà cung cấp.
Như đã đề cập trước đó, nhà cung cấp cơ bản được mô tả ở đây triển khai các phương thức để khởi động và dừng nhà cung cấp. Thời gian chạy Windows PowerShell gọi các phương thức này để khởi tạo và hủy khởi tạo nhà cung cấp.
Ghi chú
Bạn có thể tìm thấy mẫu của nhà cung cấp này trong tệp AccessDBSampleProvider01.cs do Windows PowerShell cung cấp.
Xác định lớp nhà cung cấp Windows PowerShell
Bước đầu tiên trong việc tạo nhà cung cấp Windows PowerShell là xác định lớp .NET của nó. Nhà cung cấp cơ bản này định nghĩa một lớp có tên là AccessDBProvider xuất phát từ lớp cơ sở System.Manager.Automation.Provider.Cmdletprovider.
Bạn nên đặt các lớp nhà cung cấp của mình trong vùng tên Providers của vùng tên API, ví dụ: xxx.PowerShell.Providers. Nhà cung cấp này sử dụng không gian tên Microsoft.Samples.PowerShell.Provider, trong đó tất cả các mẫu nhà cung cấp Windows PowerShell đều chạy.
Ghi chú
Lớp dành cho nhà cung cấp Windows PowerShell phải được đánh dấu rõ ràng là công khai. Các lớp không được đánh dấu là công khai sẽ mặc định là nội bộ và sẽ không được tìm thấy trong thời gian chạy Windows PowerShell.
Đây là định nghĩa lớp cho nhà cung cấp cơ bản này:
[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : CmdletProvider
Ngay trước khi định nghĩa lớp, bạn phải khai báo thuộc tính System.management.Automation.Provider.Cmdletproviderattribute, với cú pháp [CmdletProvider()].
Bạn có thể đặt từ khóa thuộc tính để khai báo thêm lớp nếu cần. Lưu ý rằng thuộc tính System.Manager.Automation.Provider.Cmdletproviderattribute được khai báo ở đây bao gồm hai tham số. Tham số thuộc tính đầu tiên chỉ định tên thân thiện mặc định cho nhà cung cấp mà người dùng có thể sửa đổi sau này. Tham số thứ hai chỉ định các khả năng do Windows PowerShell xác định mà nhà cung cấp hiển thị trong thời gian chạy Windows PowerShell trong quá trình xử lý lệnh. Các giá trị có thể có cho các khả năng của nhà cung cấp được xác định bằng bảng liệt kê System.management.Automation.Provider.Providercapabilities. Bởi vì đây là nhà cung cấp cơ sở nên nó không hỗ trợ khả năng nào.
Ghi chú
Tên đủ điều kiện của nhà cung cấp Windows PowerShell bao gồm tên tập hợp và các thuộc tính khác được Windows PowerShell xác định khi đăng ký nhà cung cấp.
Xác định thông tin trạng thái cụ thể của nhà cung cấp
Lớp cơ sở System.management.Automation.Provider.Cmdletprovider và tất cả các lớp dẫn xuất được coi là không trạng thái vì thời gian chạy Windows PowerShell chỉ tạo các phiên bản nhà cung cấp khi được yêu cầu. Do đó, nếu nhà cung cấp của bạn yêu cầu toàn quyền kiểm soát và duy trì trạng thái đối với dữ liệu dành riêng cho nhà cung cấp, thì nhà cung cấp đó phải lấy được một lớp từ lớp System.management.Automation.Providerinfo. Lớp dẫn xuất của bạn phải xác định các thành viên cần thiết để duy trì trạng thái sao cho có thể truy cập dữ liệu dành riêng cho nhà cung cấp khi thời gian chạy Windows PowerShell gọi phương thức System. Management.Automation.Provider.Cmdletprovider.Start* để khởi tạo nhà cung cấp.
Nhà cung cấp Windows PowerShell cũng có thể duy trì trạng thái dựa trên kết nối. Để biết thêm thông tin về việc duy trì trạng thái kết nối, hãy xem Tạo Nhà cung cấp Ổ đĩa PowerShell.
Khởi tạo nhà cung cấp
Để khởi tạo nhà cung cấp, thời gian chạy Windows PowerShell gọi phương thức System.management.Automation.Provider.Cmdletprovider.Start* khi Windows PowerShell được khởi động. Trong hầu hết các trường hợp, nhà cung cấp của bạn có thể sử dụng cách triển khai mặc định của phương pháp này, phương pháp này chỉ trả về đối tượng System.management.Automation.Providerinfo mô tả nhà cung cấp của bạn. Tuy nhiên, trong trường hợp bạn muốn thêm thông tin khởi tạo bổ sung, bạn nên triển khai phương thức System.Manager.Automation.Provider.Cmdletprovider.Start* của riêng mình để trả về phiên bản sửa đổi của đối tượng System.Man Management.Automation.Providerinfo đã được thông qua tới nhà cung cấp của bạn. Nói chung, phương thức này sẽ trả về đối tượng System.Man Management.Automation.Providerinfo được cung cấp cho nó hoặc một đối tượng System.Man Management.Automation.Providerinfo đã sửa đổi có chứa thông tin khởi tạo khác.
Nhà cung cấp cơ bản này không ghi đè phương pháp này. Tuy nhiên, đoạn mã sau hiển thị cách triển khai mặc định của phương pháp này:
Nhà cung cấp có thể duy trì trạng thái thông tin dành riêng cho nhà cung cấp như được mô tả trong Xác định trạng thái dữ liệu dành riêng cho nhà cung cấp. Trong trường hợp này, việc triển khai của bạn phải ghi đè phương thức System.management.Automation.Provider.Cmdletprovider.Start* để trả về một phiên bản của lớp dẫn xuất.
Bắt đầu tham số động
Việc triển khai phương thức System.management.Automation.Provider.Cmdletprovider.Start* của nhà cung cấp của bạn có thể yêu cầu các tham số bổ sung. Trong trường hợp này, nhà cung cấp nên ghi đè phương thức System.Manager.Automation.Provider.Cmdletprovider.Startdynamicparameters* và trả về một đối tượng có các thuộc tính và trường có thuộc tính phân tích cú pháp tương tự như một lớp lệnh ghép ngắn hoặc một đối tượng System.Manager.Automation.Runtimedparameterdictionary.
Nhà cung cấp cơ bản này không ghi đè phương pháp này. Tuy nhiên, đoạn mã sau hiển thị cách triển khai mặc định của phương pháp này:
Đơn giản hóa nhà cung cấp
Để giải phóng các tài nguyên mà nhà cung cấp Windows PowerShell sử dụng, nhà cung cấp của bạn phải triển khai phương thức System.management.Automation.Provider.Cmdletprovider.Stop* của riêng mình. Phương thức này được thời gian chạy Windows PowerShell gọi để hủy khởi tạo nhà cung cấp khi kết thúc phiên.
Nhà cung cấp cơ bản này không ghi đè phương pháp này. Tuy nhiên, đoạn mã sau hiển thị cách triển khai mặc định của phương pháp này:
Mẫu mã
Để biết mã mẫu hoàn chỉnh, hãy xem Mẫu mã AccessDbProviderSample01.
Kiểm tra nhà cung cấp Windows PowerShell
Khi nhà cung cấp Windows PowerShell của bạn đã được đăng ký với Windows PowerShell, bạn có thể kiểm tra nó bằng cách chạy các lệnh ghép ngắn được hỗ trợ trên dòng lệnh. Đối với nhà cung cấp cơ bản này, hãy chạy shell mới và sử dụng lệnh ghép ngắn Get-PSProvider để truy xuất danh sách các nhà cung cấp và đảm bảo rằng nhà cung cấp AccessDb có mặt.
Get-PSProvider
Đầu ra sau đây xuất hiện:
Name Capabilities Drives
---- ------------ ------
AccessDb None {}
Alias ShouldProcess {Alias}
Environment ShouldProcess {Env}
FileSystem Filter, ShouldProcess {C, Z}
Function ShouldProcess {function}
Registry ShouldProcess {HKLM, HKCU}
Xem thêm
Tạo nhà cung cấp Windows PowerShell
Thiết kế nhà cung cấp Windows PowerShell của bạn