示例#1
0
文件: EvalUtils.cs 项目: ottrur/dnSpy
        public static bool ReflectionReadValue <T>(CorValue thisRef, string fieldName, ref T value)
        {
            if (thisRef == null)
            {
                return(false);
            }

            var val = thisRef.GetFieldValue(fieldName);

            if (val == null)
            {
                return(false);
            }

            var dval = val.Value;

            if (!dval.IsValueValid)
            {
                return(false);
            }
            if (!(dval.Value is T || Equals(default(T), dval.Value)))
            {
                return(false);
            }

            value = (T)dval.Value;
            return(true);
        }
示例#2
0
 public IDebuggerValue GetFieldValue(string name, bool checkBaseClasses = true)
 {
     return(debugger.Dispatcher.UI(() => {
         var corValue = value.GetFieldValue(name, checkBaseClasses);
         return corValue == null ? null : new DebuggerValue(debugger, corValue);
     }));
 }
示例#3
0
文件: EvalUtils.cs 项目: ottrur/dnSpy
 public static CorValue ReflectionReadExceptionInnerException(CorValue thisRef)
 {
     if (thisRef == null)
     {
         return(null);
     }
     return(thisRef.GetFieldValue(Field_Exception_InnerException));
 }