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)); } } }
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); } } } }