尝试从对象获取值时出现反射错误

时间:2015-04-17 18:36:12

标签: c# reflection propertyinfo

我正在处理的应用程序有一段代码,当对象的属性值为null时偶尔会失败。

我需要在使用此代码之前检查值:

    foreach(PropertyInfo pInfo in this.GetType().GetProperties()) 
    {
        int index = pInfo.Name.IndexOfAny(new char[] {'2'});

        if( index > -1 && pInfo.PropertyType.ToString() != "System.Boolean" && pInfo.Name != "Bank2AccountType"
            && ! pInfo.PropertyType.IsEnum )
        {
            // Get the value of the current property
            string propertyValue = pInfo.GetValue(this, null).ToString();

            if( propertyValue != string.Empty )
            {
                // There is a value in the current property, the bank 2 is not empty
                isEmpty = false;

                // There is no need to do further checks, break out of the loop and return
                break;
            }
        }

        propertyIndex++;
    }

这是它失败的地方:

string propertyValue = pInfo.GetValue(this, null).ToString();

我认为,this是具有' pInfo'的对象。属性。

我需要先检查null,然后再将其分配给" propertyValue"变量

这样做的正确方法是什么?

0 个答案:

没有答案