using OpenTap; using OpenTap.Addin; using OpenTap.Addin.Annotation; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; namespace AddInPlugin { [Browsable(false)] public abstract class VariableTestStep : TestStep { protected Dictionary VariablePool; protected ObservableCollection methodVariables = new ObservableCollection(); [Display("参数", Order: 0.0, Description: "运行参数.")] [BindingList(nameof(MethodVariables))] public ObservableCollection MethodVariables { get => methodVariables; set { methodVariables = value; foreach (var mv in value) { mv.Type = Type.GetType(mv.TypeName); } OnPropertyChanged(nameof(MethodVariables)); OnMethodVariablesChanged(value); } } protected virtual void OnMethodVariablesChanged(ObservableCollection variables) { } //protected object Resolve(string key, Type targetType) //{ // if (key.StartsWith("${") && key.EndsWith("}")) // { // key = key.Substring(2, key.Length - 3); // if (!VariablePool.ContainsKey(key)) // { // throw new Exception("No Variable"); // } // var target = VariablePool[key]; // if (target.Type != targetType) // { // throw new Exception("Type Not Match"); // } // return target.data; // } // return null; //} public override void PrePlanRun() { base.PrePlanRun(); } } }