У меня есть 2 сценария powershell, которые я выполняю из c #, которые я использую для первого вывода списка сообщений с помощью командлета IMAP, а второй сценарий выполняет просмотр определенного сообщения.Оба успешно выполняются из powershell, второе - я пытаюсь получить вложение, и я вижу кучу данных, выводимых на консоль, примерно так ...
Sent from my iPhone
------=_NextPart_000_0027_01CCDAA7.399EBE00
Content-Type: image/jpeg; name="photo.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="photo.JPG"
/9j/4QH6RXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAHAAAAjAESAAMAAAABAAYA
AAEaAAUAAAABAAAAlAEbAAUAAAABAAAAnAEoAAMAAAABAAIAAAEyAAIAAAAUAAAApAITAAMAAAAB
AAEAAIdpAAQAAAABAAAAuIglAAQAAAABAAABZgAAAABBcHBsZQBpUGhvbmUAAAAAAEgAAAABAAAA
SAAAAAEyMDA5OjA5OjIwIDE1OjEwOjU1AAAKgp0ABQAAAAEAAAE2kAAABwAAAAQwMjIxkAMAAgAA
ABQAAAE+kAQAAgAAABQAAAFSkQEABwAAAAQBAgMAoAAABwAAAAQwMTAwoAEAAwAAAAEAAQAAoAIA
BAAAAAEAAAZAoAMABAAAAAEAAASwpAYAAwAAAAEAAAAAAAAAAAAAAA4AAAAFMjAwOTowOToyMCAx
, так что, похоже, пока все в порядке -кроме того, я полагаю, что разница в результате функции как возможный поток / канал от powershell?
Первый возвращает коллекцию PSObjects, которая называется так:
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.AddScript(script);
ps.Invoke();
foreach (PSObject result in ps.Invoke())
{
dynamic val = result.BaseObject;
}
ВторойСценарий выполняется без ошибок с использованием Invoke (), однако при попытке получить данные через для каждого или
dynamic xx = ps2.Invoke();
xx пусто;
Я подумал, может быть, мне нужно использовать BeginInvoke и вызывать асинхронно, поэтому я попытался
static dynamic GotMail(dynamic o)
{
return o;
}
delegate dynamic SomeDelegate(dynamic o);
and attempted to use like so..
SomeDelegate sd = GotMail;
IAsyncResult ar = ps2.BeginInvoke();
dynamic val2 = sd.EndInvoke(ar);
и я получаю "Асинхронный объект результата имеет значение null или имеет неожиданный тип." Я даже не передаю параметры в сценарии powershell .. все жестко закодировано -Скрипт, который я успешно запускаю из powershell, - это именно то, что я выполняю из .NET
Любые предложения по этому поводу очень ценятся.
Спасибо