0

我想要一个字典,其中 value 是 myClass 类型的字段,而 key 是该字段的名称。我试过 FieldInfo:

actions = new Dictionary<string, myClass> ();
FieldInfo[] fields = triggerScript.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
int iterator = 0;

for (int i = 0; i < fields.Length; i++) 
{
    var field = fields[i];
    if (field.FieldType == typeof(myClass))
    {
        actions.Add (fields[i].Name, fields[i].GetValueDirect());
    }
}

但是 FieldInfo 不包含对其描述的字段的引用。我怎样才能做到这一点?


例子:

public SimpleAction OnClick;

在字典中:

键 - OnClick;

价值 - (SimpleAction)OnClick;

更新

我有一个指定的 tyte SimpleAction 对象,并且想将它的引用和名称存储在字典中。

4

1 回答 1

1

您可以使用ToDictionaryLINQ 中的方法更简单。此外,要获取字段的值,请使用方法GetValue

var actions = triggerScript.GetType()
           .GetFields(BindingFlags.Public | BindingFlags.Instance)
           .Where(field => field.FieldType == typeof (SimpleAction))
           .ToDictionary(field => field.Name, 
                         field => (SimpleAction)field.GetValue(triggerScript));
于 2012-11-04T06:44:06.773 回答