0

GetFields型のメソッドに対して実行されている linq クエリから基になる型を取得しようとしています。私の例では、私は持っています:

string mClass = "Computer"; //match string
var t = typeof(SystemMonitoringClass);
var monitoringClass = (SystemMonitoringClass)t.GetFields().First(x => x.Name == mClass); 

FieldInfo戻り値の型を探しているものに変換できないため、3 行目のキャストは失敗します。したがって、適切なフィールドを見つけた後、実際のオブジェクトを取得するにはどうすればよいですか。この回避策は、新しい SCOM 2012 SDKSystemMonitoringClassが列挙型からクラスに変更されたためです。この場合、誰かが文字列を照合して実際の監視オブジェクトまたはフィールドを取得するためのより良いアプローチを持っている場合、それも機能します。

http://msdn.microsoft.com/en-us/library/hh326622.aspx

4

1 に答える 1

1

「フィールド」の概念を「特定のインスタンスのそのフィールドの値」から分離する必要があります。あなたがしたいFieldInfo.GetValue、例えば

var monitoringClass = (SystemClass) field.GetValue(null);

編集: type の値を返すように実際に宣言されていることに注意してSystemMonitoringClass.Computerください。SystemClassSystemMonitoringClass

于 2013-07-16T17:43:19.830 に答える