Microsoft.JScript.LateBinding.SelectMember C# (CSharp) Method

SelectMember() static private method

static private SelectMember ( MemberInfo mems ) : MemberInfo
mems System.Reflection.MemberInfo
return System.Reflection.MemberInfo
      internal static MemberInfo SelectMember(MemberInfo[] mems){
        if (mems == null) return null;
        MemberInfo result = null;
        foreach (MemberInfo mem in mems){
          switch(mem.MemberType){
            case MemberTypes.Field:
              if (result == null || result.MemberType != MemberTypes.Field)
                result = mem;
              break;
            case MemberTypes.Property:
              if (result == null || (result.MemberType != MemberTypes.Field && result.MemberType != MemberTypes.Property)){
                ParameterInfo[] pars = ((PropertyInfo)mem).GetIndexParameters();
                if (pars != null && pars.Length == 0)
                  result = mem;
              }
              break;
            case MemberTypes.TypeInfo:
            case MemberTypes.NestedType:
              if (result == null)
                result = mem;
              break;
          }
        }
        return result;
      }

Usage Example

Esempio n. 1
0
 internal override void SetMemberValue(string name, object value)
 {
     MemberInfo[] member = this.GetMember(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance);
     if (member.Length == 0)
     {
         if (VsaEngine.executeForJSEE)
         {
             throw new JScriptException(JSError.UndefinedIdentifier, new Context(new DocumentContext("", null), name));
         }
         FieldInfo info = this.AddField(name);
         if (info != null)
         {
             info.SetValue(this, value);
         }
     }
     else
     {
         MemberInfo info2 = LateBinding.SelectMember(member);
         if (info2 == null)
         {
             throw new JScriptException(JSError.AssignmentToReadOnly);
         }
         LateBinding.SetMemberValue(this, name, value, info2, member);
     }
 }
All Usage Examples Of Microsoft.JScript.LateBinding::SelectMember