public void QueueFieldInitialization(String fieldName, IValueResolveDelegate value) { if (!initializeStaticFields.PutIfNotExists(fieldName, value)) { throw new Exception("Field already queued for initialization: " + fieldName); } }
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); }