Microsoft.JScript.WithObject.GetField C# (CSharp) Method

GetField() public method

public GetField ( String name, int lexLevel ) : FieldInfo
name String
lexLevel int
return System.Reflection.FieldInfo
      public FieldInfo GetField(String name, int lexLevel){
        if (lexLevel <= 0)
          return null;
        IReflect ir;
        if (this.contained_object is IReflect)
          ir = (IReflect)(this.contained_object);
        else
          ir = (IReflect)(Globals.TypeRefs.ToReferenceContext(this.contained_object.GetType()));
        FieldInfo field = ir.GetField(name, BindingFlags.Instance|BindingFlags.Static|BindingFlags.FlattenHierarchy|BindingFlags.Public);
        if (field != null)
          return new JSWrappedField(field, this.contained_object);
        PropertyInfo prop = ir.GetProperty(name, BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public);
        if (prop != null)
          return new JSPropertyField(prop, this.contained_object);
        if (this.parent != null && lexLevel > 1){
          field = ((IActivationObject)this.parent).GetField(name, lexLevel-1);
          if (field != null)
            return new JSWrappedField(field, this.parent);
        }
        return null;
      }

Usage Example

        internal void SetWithValue(WithObject scope, object value)
        {
            FieldInfo field = scope.GetField(base.name, this.lexLevel);

            if (field != null)
            {
                field.SetValue(scope, value);
            }
        }
All Usage Examples Of Microsoft.JScript.WithObject::GetField