如何创建用于使用静态成员的 PowerShell 变量
本文关键字:静态成员 PowerShell 变量 用于 何创建 创建 | 更新日期: 2023-09-27 18:32:44
PowerShell 4.0
在我的应用程序中,Application
类具有一组重要的属性、方法和事件。我想通过 app
PowerShell 变量(它就像类的别名)与该成员一起工作。但Runspace.SessionStateProxy.SetVariable
需要第二个参数中的类实例:
using app = CompanyName.AppName.Application;
...
using (Runspace rs = RunspaceFactory.CreateRunspace()) {
rs.ThreadOptions = PSThreadOptions.UseCurrentThread;
rs.Open();
// TODO: The problem is here (app is not the instance of
//the Application class
rs.SessionStateProxy.SetVariable("app", app);
rs.SessionStateProxy.SetVariable("docs", app.DocumentManager);
using (PowerShell ps = PowerShell.Create()) {
ps.Runspace = rs;
ps.AddScript("$docs.Count");
ps.Invoke();
}
rs.Close();
}
我该怎么做?
可以使用
C# 中的typeof
运算符来获取表示指定类型的实例System.Type
实例。在 PowerShell 中,可以使用静态成员运算符::
来访问某种类型的静态成员。
using app = CompanyName.AppName.Application;
...
using (Runspace rs = RunspaceFactory.CreateRunspace()) {
rs.ThreadOptions = PSThreadOptions.UseCurrentThread;
rs.Open();
rs.SessionStateProxy.SetVariable("app", typeof(app));
using (PowerShell ps = PowerShell.Create()) {
ps.Runspace = rs;
ps.AddScript("$app::DocumentManager");
ps.Invoke();
}
rs.Close();
}