Я пытаюсь использовать часть своего кода из приложения Silverlight в приложении WindowsPhone. Однако у меня есть проблема с заменой динамического ключевого слова чем-то другим, так что мой код все еще компилируется и работает.
У меня есть список динамических объектов
private readonly List<dynamic> _awaitingActionsList = new List<dynamic>();
этот список используется для хранения делегатов этой подписи
Action<T> where T: class
В другой части моего класса я вызываю делегатов, используя этот код
foreach (var action in _awaitingActionsList)
{
InvokeAction(action)
}
Функция InvokeAction выглядит следующим образом
public void InvokeAction<T>(Action<T> action)
{
action.Invoke(someObject);
}
Благодаря динамическому ключевому слову этот код хорошо работал в Silverlight, однако динамического ключевого слова нет в WindowsPhone, поэтому мне было интересно, как его заменить. Я не хочу менять сигнатуру функции InvokeAction, потому что благодаря использованию обобщений и Action я могу передавать делегатам функции следующим образом:
InvokeAction<SomeType>(val => val.DoStuff(param));