Tengo una clase que ejemplifica dos clases que implementan interfaces. Quiero que una clase notifique a otra clase que algo está bien. Podría hacerlo con una Acción y luego usar variables privadas en la clase, pero me pregunté si habría una manera directa de hacerlo con las propiedades para que cuando el valor de una propiedad cambie actualice una propiedad en otra clase.Acción <T> equivalente para las propiedades
Por ejemplo:
public class MyClass
{
public ILogger Logger {get;set;}
public ILogic Logic {get;set;}
private Form MyWinform;
public void Setup()
{
MyWinform = new MyWinform();
MyWinform.StartBatch += Logger.CreateFile; //Create file when user presses start
//How can I set a property on ILogic to be AllOk once ILogger says so??
//I could use an Action so that once all is ok I call IDecidedAlOK in ILogger which
//can then assign a private bool variable inside the class
Logic.ItsOKMethodSoSetVariableToTrue = Logger.IDecidedAllOKMethod;
}
public void DataIn(string Value)
{
Logic.DataIn(Value);
}
public void CreateInstances()
{
Logger = new FileLogger();
Logic = new MyLogic();
}
}
public class MyLogic : ILogic
{
public void DataIn(string Value)
{
//I want to check that all is ok before I do anything
//if (!AllOK)
//return;
//Do stuff
}
}
Tienes la clase ILogger, quiero decir, ¿puedes hacer cambios en ella? – Stormenet
¿Puede 'ILogger' exponer un evento' AllOK' al que 'ILogic' puede suscribirse? – mellamokb
@Stormenet Sí puedo – Jon