Я пытаюсь написать модуль PowerShell на основе командлетов для нашего приложения.После исходного командлета подключения я хочу сохранить значения где-нибудь, пока у пользователя открыто текущее окно PowerShell.Одним из значений является ключ авторизации, который я создаю из учетных данных пользователя, а затем он требуется для будущих вызовов без предоставления учетных данных для каждого действия.
Я подумал, что было бы легко получить и установить их в пользовательскомобъект из C #, но я изо всех сил пытаюсь заставить его применить к текущему пространству выполнения.Я признаю, что я тоже довольно плохо знаком с C #.
Вот пример моей самой успешной попытки в минимальной форме, то есть это будет оцениваться как истина, однако это не то же самое пространство выполнения.Если я вызываю $ item в PowerShell, он, очевидно, не знает, о чем идет речь.
using System.Management.Automation.Runspaces;
namespace Test
{
public class VariableTest
{
public bool CreateVariable()
{
var runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
runSpace.SessionStateProxy.SetVariable("item", "FooBar");
var a = runSpace.SessionStateProxy.PSVariable.GetValue("item");
if (a.ToString() == "FooBar")
{
return true;
}
else
{
return false;
}
}
}
}
Если бы я писал этот модуль в PowerShell, я, вероятно, просто сохранил бы их в глобальной переменной,Может ли кто-нибудь помочь с получением и настройкой этих значений, чтобы я мог вызывать элемент в консоли PowerShell?Или это ужасно неправильно, и что-то уже существует для учета постоянных переменных модуля в C #, которые я пропустил.