예제 #1
0
        public ParameterDefinitions(StrategyBase strategy, bool fInitializeValues)
        {
            _rgParams = strategy.Parameters;

            Type typeStrategy = strategy.GetType();

            for (int iParam = 0; iParam < _rgParams.Count; iParam++)
            {
                Parameter param = _rgParams [iParam];
                Type      type  = param.ParameterType;
                if (type.IsEnum)
                {
                    EnumParameterDefinition epdEnum = new EnumParameterDefinition(typeStrategy, param, iParam);
                    _rgParameterDefinitions.Add(epdEnum);

                    if (fInitializeValues)
                    {
                        object value = epdEnum.ReadValue(strategy);
                        if (value != null)
                        {
                            epdEnum.AddValue(value);
                        }
                    }
                }
                else if (type == typeof(bool))
                {
                    BooleanParameterDefinition epdBool = new BooleanParameterDefinition(typeStrategy, param, iParam);
                    _rgParameterDefinitions.Add(epdBool);

                    if (fInitializeValues)
                    {
                        epdBool.AddValue(epdBool.ReadValue(strategy));
                    }
                }
                else if (type.IsPrimitive)
                {
                    _rgParameterDefinitions.Add(new IntegralParameterDefinition(_rgParams, iParam));
                }
            }
        }
예제 #2
0
        public override void InitializeFrom(SetParameterDefinition otherTmp)
        {
            EnumParameterDefinition other = otherTmp as EnumParameterDefinition;

            if (other == null)
            {
                return;
            }

            for (int iValue = 0; iValue < other.CountValues; iValue++)
            {
                object value   = other.GetValue(iValue);
                string strName = Enum.GetName(otherTmp.Parameter.ParameterType, value);
                if (strName != null)
                {
                    object valueNew = Enum.Parse(this.Parameter.ParameterType, strName);
                    if (valueNew != null)
                    {
                        this.AddValue(valueNew);
                    }
                }
            }
        }