2007年02月15日

WMIのMethodInvokeの結果をキャストすると例外が発生する

  
http://msdn2.microsoft.com/ja-jp/library/ms257364(VS.80).aspx

に記載されているWMIサンプルコードの、一部を変更し、実行したところ、InvalidCastExceptionが発生します。

以下、C#のコードの一部。

ManagementObject classInstance =  new ManagementObject("root\\CIMV2",
     "Win32_Service.Name='PlugPlay'",
     null);
ManagementBaseObject outParams = classInstance.InvokeMethod(
"StartService", null, null);
object o = outParams["ReturnValue"];
int n = (int)o;  // ここで例外発生

 ※最後の2行以外は、サンプルコードそのままです。

ちなみに、最後の行を以下の2行に置き換えてみました。

Console.WriteLine(o.GetType().ToString());
Console.WriteLine(o.ToString());

すると、

System.Int32
10

が表示されますので、キャストできると思うのですが、キャストすることができません。

何か、大きな勘違いをしてるのかな?


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50707594