カスタム列挙型のクラスがあります:
public enum Capabilities{
PowerSave= 1,
PnP =2,
Shared=3, }
私のクラス
public class Device
{
....
public Capabilities[] DeviceCapabilities
{
get { // logic goes here}
}
実行時にリフレクションを使用してこのフィールドの値を取得する方法はありますか? 次のことを試しましたが、null参照例外が発生しました
PropertyInfo[] prs = srcObj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo property in prs)
{
if (property.PropertyType.IsArray)
{
Array a = (Array)property.GetValue(srcObj, null);
}
}
編集: ご回答ありがとうございます。私が本当に必要としているのは、列挙型を指定せずに値を動的に取得する方法です。何かのようなもの:
string enumType = "enumtype"
var property = typeof(Device).GetProperty(enumType);
それは可能ですか?