【发布时间】:2013-09-09 08:53:38
【问题描述】:
目前我正在开发一个 C# Web 服务,它是一个“中间人”。 客户端可以调用方法“executeScript(String script)”,然后我的 Web 服务调用该脚本。
目前,Web 服务不知道客户端将执行哪些脚本(通常是交换脚本)。我如何正确读取输出?例如获取进程或其他东西。
我的错误阅读已经开始了。示例脚本:“获取邮箱 xxxxx”
if (pl.Error.Count > 0)
{
//error in pipeline
var errorList = pl.Error.Read() as Collection<ErrorRecord>;
if (errorList != null)
{
foreach (ErrorRecord er in errorList)
{
logger.Error(er.Exception.Message);
ExceptionObject eo = new ExceptionObject();
eo.message = er.Exception.Message;
eo.source = er.Exception.Source;
eo.stackTrace = er.Exception.StackTrace;
errors.Add(eo);
}
}
if (pso != null)
{
foreach (PSObject o in pso)
{
logger.Info("size: " + o.Properties.Count());
logger.Info(o.ToString());
foreach (PSPropertyInfo psprop in o.Properties)
{
sb.AppendLine("Name: " + psprop.Name + ", Value: " + psprop.Value + ", MemberType: " + psprop.MemberType);
}
}
logger.Info(pso.ToString());
pro.result = sb.ToString();
}
logger.Info(o.ToString()); -> 获取邮箱 xxxxx
属性:“名称:长度,值:19,成员类型:属性”
那不是正确的输出。有没有办法将响应作为字符串作为原始 powershell 控制台中的字符串? (在每个脚本上动态显示!)
【问题讨论】:
标签: c# powershell pipeline psobject