fix: mark FeedbackBase default constructor as obsolete

There are situations now where feedbacks in the feedback collection
can be used to update things on UIs. If the feedback doesn't have a key, it can't
be used for this purpose.
This commit is contained in:
Andrew Welker
2025-07-25 09:18:22 -05:00
parent f0af9f8d19
commit dc7f99e176
4 changed files with 59 additions and 47 deletions

View File

@@ -42,6 +42,7 @@ namespace PepperDash.Essentials.Core
/// it will NOT reflect an actual value from a device until <seealso cref="FireUpdate"/> has been called /// it will NOT reflect an actual value from a device until <seealso cref="FireUpdate"/> has been called
/// </remarks> /// </remarks>
/// <param name="valueFunc">Delegate to invoke when this feedback needs to be updated</param> /// <param name="valueFunc">Delegate to invoke when this feedback needs to be updated</param>
[Obsolete("use constructor with Key parameter. This constructor will be removed in a future version")]
public BoolFeedback(Func<bool> valueFunc) public BoolFeedback(Func<bool> valueFunc)
: this(null, valueFunc) : this(null, valueFunc)
{ {

View File

@@ -9,8 +9,14 @@ using PepperDash.Core;
namespace PepperDash.Essentials.Core namespace PepperDash.Essentials.Core
{ {
/// <summary>
/// Base class for all feedback types
/// </summary>
public abstract class Feedback : IKeyed public abstract class Feedback : IKeyed
{ {
/// <summary>
/// Occurs when the output value changes
/// </summary>
public event EventHandler<FeedbackEventArgs> OutputChange; public event EventHandler<FeedbackEventArgs> OutputChange;
/// <summary> /// <summary>
@@ -44,10 +50,13 @@ namespace PepperDash.Essentials.Core
/// <summary> /// <summary>
/// Base Constructor - empty /// Base Constructor - empty
/// </summary> /// </summary>
protected Feedback() [Obsolete("use constructor with Key parameter. This constructor will be removed in a future version")]
{ protected Feedback() : this(null) { }
}
/// <summary>
/// Constructor with Key parameter
/// </summary>
/// <param name="key">The key for the feedback</param>
protected Feedback(string key) protected Feedback(string key)
{ {
if (key == null) if (key == null)

View File

@@ -25,6 +25,7 @@ namespace PepperDash.Essentials.Core
List<StringInputSig> LinkedInputSigs = new List<StringInputSig>(); List<StringInputSig> LinkedInputSigs = new List<StringInputSig>();
[Obsolete("use constructor with Key parameter. This constructor will be removed in a future version")]
public SerialFeedback() public SerialFeedback()
{ {
} }

View File

@@ -38,6 +38,7 @@ namespace PepperDash.Essentials.Core
/// it will NOT reflect an actual value from a device until <seealso cref="FireUpdate"/> has been called /// it will NOT reflect an actual value from a device until <seealso cref="FireUpdate"/> has been called
/// </remarks> /// </remarks>
/// <param name="valueFunc">Delegate to invoke when this feedback needs to be updated</param> /// <param name="valueFunc">Delegate to invoke when this feedback needs to be updated</param>
[Obsolete("use constructor with Key parameter. This constructor will be removed in a future version")]
public StringFeedback(Func<string> valueFunc) public StringFeedback(Func<string> valueFunc)
: this(null, valueFunc) : this(null, valueFunc)
{ {