using System; namespace OpenTap.Addin.Util { public class VariableResolverFactory { public static IVariableResolver DEFAULT { get; set; } private static IVariableResolverCreator Instance { get; set; } public static void Register(IVariableResolverCreator resolver) { Instance = resolver; DEFAULT = resolver.CreateResolver(); } public static IVariableResolver CreateResolver() { return Instance.CreateResolver(); } } public interface IVariableResolverCreator { IVariableResolver CreateResolver(); } public interface IVariableResolver { event EventHandler DataChanged; dynamic Resolve(TestPlanRun run, ITestStep step, string expr); T Resolve(TestPlanRun run, ITestStep step, string expr); dynamic Resolve(TestPlanRun run, ITestStep step, string expr, Type targetType); void Update(TestPlanRun run, ITestStep step, string expr); void Update(TestPlanRun run, ITestStep step, string name, object value); } }