Я удаленно вызываю сценарий Powershell (.ps1), который вызывает функцию из сторонней сборки (компонент Rebex SFTP). Эта функция возвращает целочисленное значение. Этот удаленный вызов выполняется из кода C#.
Я хочу привести результат этого вызова к int для дальнейшей обработки в коде С#.
Как это можно сделать наиболее эффективно?
Вот код:
Фрагмент кода RemoteInvocationManager (пользовательский класс с Powershell Remoting, только важные части):
using (Pipeline pipeline = remoteRunspace.CreatePipeline(scriptText))
{
Collection<PSObject> results = pipeline.Invoke();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}
}
Фрагмент кода вызова RemoveInocationManager:
string command = @"& c:\temp\sftp\mytransfer.ps1";
string result = RemoteInvocationManager.RunScript(command);
Фрагмент кода сценария Powershell (файл .ps1):
[Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Rebex\SFTP for .NET 2.0 Trial\bin\Rebex.Net.Sftp.dll")
$sftp = New-Object Rebex.Net.Sftp
$sftp.Connect("127.0.0.1")
$SshPrivateKey = New-Object Rebex.Net.SshPrivateKey("c:\temp\sftp\keys\private\myprivatekey.ppk", "myuser")
$sftp.Login("myuser", $SshPrivateKey)
$sftp.PutFile("c:\temp\sftp\input\file1.txt", "/output/fileout.txt")
$sftp.Disconnect()