Bike.Interpreter.Interpreter.SetStaticProperty C# (CSharp) Метод

SetStaticProperty() публичный Метод

public SetStaticProperty ( Type type, string propName, object value ) : void
type System.Type
propName string
value object
Результат void
        public void SetStaticProperty(Type type, string propName, object value)
        {
            value = MarshallToClr(value);
            Func<bool> setProp = () =>
            {
                var prop = type.Property(propName, StaticFlags);
                if (prop != null)
                {
                    object res = value;
                    if (TryConvert(prop.PropertyType, type, ref res))
                    {
                        prop.Set(res);
                        return true;
                    }
                }
                return false;
            };
            Func<bool> setField = () =>
            {
                var field = type.Field(propName, StaticFlags);
                if (field != null)
                {
                    object res = value;
                    if (TryConvert(field.FieldType, type, ref res))
                    {
                        field.Set(res);
                        return true;
                    }
                }
                return false;
            };
            if (char.IsLower(propName[0]))
            {
                if (setField() || setProp())
                    return;
            }
            else
            {
                if (setProp() || setField())
                    return;
            }

            throw ErrorFactory.CreateClrError(string.Format("Cannot resolve static field or property {0} of type {1}", propName, type));
        }