Example #1
0
        public ClrmdField(ClrType parent, IFieldData data)
        {
            if (parent is null)
            {
                throw new ArgumentNullException(nameof(parent));
            }

            if (data is null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            Parent      = parent;
            Token       = data.Token;
            ElementType = data.ElementType;
            Offset      = data.Offset;

            _helpers = data.Helpers;

            // Must be the last use of 'data' in this constructor.
            _type = _helpers.Factory.GetOrCreateType(data.TypeMethodTable, 0);
            if (ElementType == ClrElementType.Class && _type != null)
            {
                ElementType = _type.ElementType;
            }

            DebugOnlyLoadLazyValues();
        }
Example #2
0
        public ClrmdStaticField(ClrType parent, IFieldData data)
        {
            if (parent is null)
            {
                throw new ArgumentNullException(nameof(parent));
            }

            if (data is null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            Parent      = parent;
            Token       = data.Token;
            ElementType = data.ElementType;
            Offset      = data.Offset;

            _helpers = data.Helpers;

            // Must be the last use of 'data' in this constructor.
            _type = _helpers.Factory.GetOrCreateType(data.TypeMethodTable, 0);
        }
Example #3
0
 internal bool Init(SOSDac sos, ulong fieldDesc, IFieldHelpers helpers)
 {
     _helpers = helpers;
     return(sos.GetFieldData(fieldDesc, out _fieldData));
 }