src/EasyFrameWork/RuleEngine/RuleProviders/ValueOfRuleProvider.cs

(完整代码) 1KB

/* http://www.zkea.net/ 
 * Copyright (c) ZKEASOFT. All rights reserved. 
 * http://www.zkea.net/licenses */

using System;
using System.Collections;
using System.Text;

namespace Easy.RuleEngine.RuleProviders
{
    public class ValueOfRuleProvider : IRuleProvider
    {
        const string FunctionName = "ValueOf";
        public void Process(RuleContext ruleContext, object workContext)
        {
            if (ruleContext.FunctionName.Equals(FunctionName) && workContext != null)
            {
                if (ruleContext.Arguments[0] is string)
                {
                    var property = workContext.GetType().GetProperty(ruleContext.Arguments[0].ToString());
                    if (property != null)
                    {
                        ruleContext.Result = property.GetValue(workContext);
                        if (ruleContext.Result is IEnumerable && ruleContext.Arguments.Length == 2)
                        {
                            int index = Convert.ToInt32(ruleContext.Arguments[1]);
                            int i = 0;
                            object resultAt = null;
                            foreach (var item in ruleContext.Result as IEnumerable)
                            {
                                if (i == index)
                                {
                                    resultAt = item;
                                    break;
                                }
                                i++;
                            }
                            ruleContext.Result = resultAt;
                        }
                    }
                }

            }
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。