Exemplo n.º 1
0
 public void QueueFieldInitialization(String fieldName, IValueResolveDelegate value)
 {
     if (!initializeStaticFields.PutIfNotExists(fieldName, value))
     {
         throw new Exception("Field already queued for initialization: " + fieldName);
     }
 }
Exemplo n.º 2
0
        public virtual FieldInstance ImplementStaticAssignedField(String staticFieldName, Type fieldType, Object fieldValue)
        {
            FieldInstance field = new FieldInstance(FieldAttributes.Public | FieldAttributes.Static, staticFieldName, NewType.GetType(fieldType));

            field = ImplementField(field, null);
            field = HideFromDebug(field);
            if (fieldValue != null)
            {
                IValueResolveDelegate vrd = null;
                if (fieldValue is IValueResolveDelegate)
                {
                    vrd = (IValueResolveDelegate)fieldValue;
                }
                else
                {
                    vrd = new NoOpValueResolveDelegate(fieldValue);
                }
                ((BytecodeBehaviorState)State).QueueFieldInitialization(field.Name, vrd);
            }
            return(field);
        }