public override object GetValue(object component)
        {
            FieldType type = this.field.descriptor.type;

            if (type != FieldType.Guid)
            {
                if (type == FieldType.RawGuid)
                {
                    return(BiConverter.ToString(this.field.value as byte[]));
                }
                return(this.field.value);
            }
            else
            {
                uint num = (uint)this.field.value;
                if (num >> 31 == 1u)
                {
                    Tuple <byte[], byte[]> tuple = this.field.dbx.externalGuids[(int)(num & 2147483647u)];
                    if (this.field.dbx.catHandle.guidTable.ContainsKey(tuple.Item1))
                    {
                        return(this.field.dbx.catHandle.guidTable[tuple.Item1] + "/" + BiConverter.ToString(tuple.Item2));
                    }
                    return(BiConverter.ToString(tuple.Item1) + "-" + BiConverter.ToString(tuple.Item2));
                }
                else
                {
                    if (num != 0u)
                    {
                        return(BiConverter.ToString(this.field.dbx.internalGuids[(int)(num - 1u)]));
                    }
                    return("*nullGuid*");
                }
            }
        }
 public static string ToString(byte[] value)
 {
     if (value == null)
     {
         throw new ArgumentNullException("value");
     }
     return(BiConverter.ToString(value, 0, value.Length));
 }
 public static string ToString(byte[] value, int startIndex)
 {
     if (value == null)
     {
         throw new ArgumentNullException("value");
     }
     return(BiConverter.ToString(value, startIndex, value.Length - startIndex));
 }
示例#4
0
 public void InitializePayload()
 {
     this.internalGuids = new List <byte[]>();
     this.binaryReader.BaseStream.Position = (long)((ulong)this.payloadSectionStart);
     this.instances = new Dictionary <string, Complex>();
     foreach (InstanceRepeater current in this.instanceRepeaters)
     {
         int num = 0;
         while ((long)num < (long)((ulong)current.repetitions))
         {
             byte[] array = this.binaryReader.ReadBytes(16);
             this.internalGuids.Add(array);
             Complex value = this.parseComplex((int)current.complexIndex, this.binaryReader);
             this.instances.Add(BiConverter.ToString(array), value);
             num++;
         }
     }
 }