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

SetMember() private method

private SetMember ( Object obj, Object value, MemberInfo member ) : void
obj Object
value Object
member System.Reflection.MemberInfo
return void
      private static void SetMember(Object obj, Object value, MemberInfo member){
        switch(member.MemberType){
          case MemberTypes.Field:
            FieldInfo field = (FieldInfo)member;
            if (!field.IsLiteral && !field.IsInitOnly){
              if (field is JSField)
                field.SetValue(obj, value);
              else
                field.SetValue(obj, Convert.CoerceT(value, field.FieldType), BindingFlags.SuppressChangeType, null, null);
            }
            return;
          case MemberTypes.Property:
            PropertyInfo property = (PropertyInfo)member;
            if (property is JSProperty || property is JSWrappedProperty){
              property.SetValue(obj, value, null);
              return;
            }
            MethodInfo setMeth = JSProperty.GetSetMethod(property, false);
            if (setMeth != null)
              try{
                setMeth.Invoke(obj, BindingFlags.SuppressChangeType, null, new Object[]{Convert.CoerceT(value, property.PropertyType)}, null);
              }catch(TargetInvocationException e){
                throw e.InnerException;
              }
            return;
        }
      }