C#Exchange Powershell指定的强制转换无效

时间:2010-03-17 08:30:04

标签: c# powershell exchange-server

我收到一个指定的强制转换错误,试图返回一个整数,示例代码如下:

results = pipeline.Invoke();

foreach (PSObject ps in results)
{
int diff = 0;
Int32 exchcount = Convert.ToInt32(ps.Members["itemcount"].Value);
diff = itemcount - exchcount;
}

我试图找出数据类型是什么,如果对于Get-Mailboxstatistics的itemcount但我找不到信息,我认为它是Int,我已经尝试了字符串,但这也不起作用。任何想法,请告诉我!

由于 史蒂夫

3 个答案:

答案 0 :(得分:0)

您可以在foreach循环中放置断点并查看ps.Members["itemcount"].Value的类型(例如,您可以在立即窗口中执行ps.Members["itemcount"].Value.GetType()。)

答案 1 :(得分:0)

您获得的错误是foreach循环。变量ps声明为PSObject类型,而results可能是其他东西(对象数组的类型不正确)。查看results变量的类型。

答案 2 :(得分:0)

我不认为这是foreach语句,如果我使用像'DisplayName'这样的字符串类型值cmd值它可以工作..仅对于值/ int类型它似乎失败。我会尝试检查断点以查看值类型..

谢谢! ST