Я вызываю скрипт Powershell (.ps1), который вызывает функцию из сторонней сборки (компонент Rebex SFTP).Эта функция возвращает целочисленное значение.Этот удаленный вызов выполняется из кода C #.
Я хочу преобразовать результат этого вызова в int для дальнейшей обработки в коде C #.
Как это можно сделать наиболее эффективно?
Вот некоторый код:
Фрагмент кода 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()