private static IValueTracker <T> CreateValueTracker(ValueTrackerTypes valueTrackerType) { switch (valueTrackerType) { case ValueTrackerTypes.Default: return(new DefaultValueTracker <T>()); case ValueTrackerTypes.Equality: return(new EqualityValueTracker <T>()); case ValueTrackerTypes.DeepEquality: return(new DeepEqualityValueTracker <T>()); case ValueTrackerTypes.Interceptor: default: throw new NotSupportedException(); } }
public TrackValue(T value, ValueTrackerTypes valueTrackerType) : this(value, value, CreateValueTracker(valueTrackerType), false) { }