У меня есть такой случай, когда я создаю 2 разных обработчика событий, помещенных в базовый класс, и подписываюсь на них соответственно из классов Quotes и Charts.У меня проблема в том, что первая подписка срабатывает нормально для первого события, но любые последующие подписки не выполняются.Я включил пример 2 разных обработчиков, Quotes и Charts, Quotes выполняется без проблем, но Charts не запускается при получении данных.
Базовый класс:
public abstract class MyBaseClass
{
protected virtual void RaiseOnQuoteData(string item) { }
protected virtual void RaiseOnChartData(string item) { }
void OnDataReceived(object sender, DataEventArgs e)
{
if (e.Item == "QUOTE")
RaiseOnQuoteData(e.Item);
else if (e.Item == "CHART")
RaiseOnChartData(e.Item);
}
}
Классы кавычек и диаграмм:
public class Quote : MyBaseClass
{
public event EventHandler<DataEventArgs<quoteRecord>> OnQuoteData;
protected override void RaiseOnQuoteData(string item)
{
OnQuoteData.Raise<DataEventArgs<quoteRecord>>(this, new DataEventArgs<quoteRecord>(item));
}
}
public class Chart : MyBaseClass
{
public event EventHandler<DataEventArgs<chartRecord>> OnChartData;
protected override void RaiseOnChartData(string item)
{
OnChartData.Raise<DataEventArgs<chartRecord>>(this, new DataEventArgs<chartRecord>(item));
}
}
Подписка:
public class QuoteSubscription
{
public static void SubscribetoQuoteData()
{
Quote Q = new Quote();
Q.OnQuoteData += new EventHandler<DataEventArgs<quoteRecord>>(q_OnQuoteData);
}
static void q_OnQuoteData()
{
//Executes fine
}
}
public class ChartSubscription
{
public static void SubscribetoChartData()
{
Chart C = new Chart();
C.OnChartData += new EventHandler<DataEventArgs<chartRecord>>(q_OnChartData);
}
static void q_OnChartData()
{
//Does not execute
}
}
Это реализовано в ASP.NET 4.0. Есть ли вероятность того, что создание производных классов может быть проблемой, поскольку оба классаделить один и тот же базовый класс?Любая помощь, указывающая на причину, будет принята с благодарностью.