示例#1
0
        public override void Compute()
        {
            Created = DateTimeReader.FromObjToDate(Obj, "created");

            eventTypeValue = Obj.GetStringSafe("<EventTypeName>k__BackingField");

            InstanceData = Obj.GetStringSafe("<InstanceData>k__BackingField");

            InstanceName = Obj.GetStringSafe("<InstanceName>k__BackingField");

            Timestamp = Obj.GetInt64Fld("<Timestamp>k__BackingField");

            UserName = Obj.GetStringSafe("<UserName>k__BackingField");
        }
示例#2
0
        private string DateToString(ClrField field)
        {
            string stringres = string.Empty;
            var    dt        = DateTimeReader.FromObjToDate(this.Obj, field);

            if (dt == DateTime.MinValue)
            {
                return(string.Format(fieldPrintFormat, field.Name, "[EmptyDate]", Environment.NewLine));
            }

            var timeSince = MetadataManager.GetDumpTime(this.Obj) - dt;

            return(dt.ToString("s") + " ( " + timeSince.ToString("g") + " ago)");
        }
        protected virtual bool Parse([CanBeNullObject] ClrObject clrObject, out string text)
        {
            text = string.Empty;
            if (clrObject.IsNullObj || (clrObject.Type == null))
            {
                return(false);
            }

            var elementType = clrObject.Type.ElementType;
            var type        = clrObject.Type;

            switch (elementType)
            {
            case ClrElementType.String:
            {
                text = type.GetValue(clrObject.Address) as string;
                break;
            }

            case ClrElementType.Int32:
            {
                text = ((int)type.GetValue(clrObject.Address)).ToString();

                break;
            }

            case ClrElementType.Int64:
            {
                text = ((long)type.GetValue(clrObject.Address)).ToString();
                break;
            }

            case ClrElementType.Boolean:
            {
                text = ((bool)type.GetValue(clrObject.Address)).ToString();
                break;
            }

            case ClrElementType.Double:
            {
                text = ((double)type.GetValue(clrObject.Address)).ToString();
                break;
            }

            case ClrElementType.UInt64:
            {
                text = ((ulong)type.GetValue(clrObject.Address)).ToString();
                break;
            }

            case ClrElementType.Struct:
            {
                if (string.Equals(type.Name, typeof(Guid).FullName))
                {
                    text = ClrObjectValuesReader.ReadGuidValue(clrObject).ToString();
                    break;
                }

                if (string.Equals(type.Name, typeof(DateTime).FullName))
                {
                    text = DateTimeReader.FromObjToDate(clrObject).ToString();
                    break;
                }

                if (string.Equals(type.Name, typeof(TimeSpan).FullName))
                {
                    text = TimeSpanReader.Read(clrObject).ToString();
                    break;
                }

                break;
            }
            }

            return(string.IsNullOrEmpty(text));
        }
        public override void Compute()
        {
            stamp = Obj.GetInt64Fld("<Sequence>k__BackingField");

            time = DateTimeReader.FromObjToDate(Obj, "<Date>k__BackingField");
        }