public AnalysisStrategy() { //Platform Weight filed this.PlatformWeightSetMethod = new SerializableGenericObject <IPlatformWeightSetMethod>(); // the candidate platform weight set method this.manualWeightSetMethod = new ManualAssignmentPlatformWeightSetMethod(); this.autoWeightSetMethod = new AutoAssignmentPlatformWeightSetMethod(); // the add order is the same as the radio group present index order this.PlatformWeightSetMethodDict = new SerializableDictionary <string, IPlatformWeightSetMethod>(); this.PlatformWeightSetMethodDict.Add(typeof(ManualAssignmentPlatformWeightSetMethod).FullName, this.manualWeightSetMethod); this.PlatformWeightSetMethodDict.Add(typeof(AutoAssignmentPlatformWeightSetMethod).FullName, this.autoWeightSetMethod); //Platform Assign Method filed this.PlatformAssignMethod = new SerializableGenericObject <IPlatformAssignMethod>(); // two candidate platform assign method this.randomAssignMethod = new RandomPlatformAssignMethod(); this.balancedAssignMethod = new BalancedPlatformAssignMethod(); // the add order is the same as the radio group present index order this.PlatformAssignMethodDict = new SerializableDictionary <string, IPlatformAssignMethod>(); this.PlatformAssignMethodDict.Add(typeof(RandomPlatformAssignMethod).FullName, this.randomAssignMethod); this.PlatformAssignMethodDict.Add(typeof(BalancedPlatformAssignMethod).FullName, this.balancedAssignMethod); InitDefaultValue(); }