Quote:А AddInfoLog требует в свою очередь LogReceiver, который как правильно делать вообще не понятно :(
Как работать с справкой.Открываем справку с описанием AddInfoLog и видим
Code
public static void AddInfoLog(
this ILogReceiver receiver,
string message,
params Object[] args
)
Если перейти по ссылке ILogReceiver, то попадем в описание, в котором написано что это интерфейс(также это видно из названия
ILogReceiver ).
Из этого делается вывод, что в качестве параметра в AddInfoLog должен передаваться объект реализующий интерфейс ILogReceiver.
Далее посмотрим описание двух классов QuikTrader и Strategy
Code
public class QuikTrader : BaseTrader
Ничего интересного, переходим по ссылке BaseTrader
Code
public abstract class BaseTrader : Disposable, ITrader, IDisposable, ILogReceiver, ILogSource, IPersistable
BaseTrader реализует интерфейс ILogReceiver, а т.к. QuikTrader является его наследником то его можно использовать в качестве передаваемого параметра для AddInfoLog.
Аналогично и для Strategy
Code
public class Strategy : Equatable<Strategy>, INotifyPropertyChanged, ILogReceiver, ILogSource, IPersistable
Пример:
Code
_trader = new QuikTrader();
_myStrat = new MyStrategy();
....
LoggingHelper.AddInfoLog(_trader, "Comment");
LoggingHelper.AddInfoLog(_myStrat, "Comment");
class MyStrategy : Strategy
{
LoggingHelper.AddInfoLog(this, "Comment");
}
Или короче
Code
_trader = new QuikTrader();
_myStrat = new MyStrategy();
....
_trader.AddInfoLog("Comment");
_myStrat.AddInfoLog("Comment");
class MyStrategy : Strategy
{
this.AddInfoLog("Comment");
}