private void SetMethodValue(object value)
        {
            if (_methodInfo == null)
            {
                return;
            }

            if (!OSCReflection.CheckAccess(_methodInfo, OSCReflectionAccess.Write))
            {
                return;
            }

            var parameters = new object[1];

            if (value == null || _methodWriteType.IsAssignableFrom(value.GetType()))
            {
                parameters[0] = value;
            }
            else
            {
                parameters[0] = Convert.ChangeType(value, _methodWriteType);
            }

            _methodInfo.Invoke(_target, parameters);
        }
Beispiel #2
0
        private OSCReflectionProperty(object target, MethodInfo methodInfo)
        {
            _target       = target;
            _propertyType = OSCReflectionType.Method;
            _propertyName = methodInfo.Name;

            _methodInfo      = methodInfo;
            _methodWriteType = OSCReflection.GetMethodWriteType(methodInfo);
            _methodReadType  = OSCReflection.GetMethodReadType(methodInfo);
        }
        // METHOD
        private object GetMethodValue()
        {
            if (_methodInfo == null)
            {
                return(null);
            }

            if (!OSCReflection.CheckAccess(_methodInfo, OSCReflectionAccess.Read))
            {
                return(null);
            }

            return(_methodInfo.Invoke(_target, null));
        }