MemoScope.Core.Data.ClrObject.GetField C# (CSharp) Method

GetField() public method

public GetField ( string fieldName ) : Microsoft.Diagnostics.Runtime.ClrInstanceField
fieldName string
return Microsoft.Diagnostics.Runtime.ClrInstanceField
        public ClrInstanceField GetField(string fieldName)
        {
            ClrInstanceField field = null;
            string backingFieldName = GetAutomaticPropertyField(fieldName);

            if (field == null)
                field = Type.GetFieldByName(fieldName);

            if (field == null)
                field = Type.GetFieldByName(backingFieldName);

            return field;
        }

Usage Example

示例#1
0
        public static object GetFieldValueImpl(ulong address, ClrType type, List <string> fieldNames)
        {
            ClrObject obj = new ClrObject(address, type);

            for (int i = 0; i < fieldNames.Count; i++)
            {
                var fieldName          = fieldNames[i];
                ClrInstanceField field = obj.GetField(fieldName);
                if (field == null)
                {
                    return(null);
                }

                obj = obj[field];
                if (obj.IsNull)
                {
                    return(null);
                }
            }

            return(obj.HasSimpleValue ? obj.SimpleValue : obj.Address);
        }