如何在WindowsPhone中替换动态关键字

时间:2012-03-18 18:27:05

标签: c# .net dynamic delegates windows-phone-7.1

我正在尝试在WindowsPhone应用程序中使用Silverlight应用程序中的一些代码。但是我有一个问题用其他东西替换动态关键字,所以我的代码仍然编译和工作。 我有一个动态对象列表

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));

1 个答案:

答案 0 :(得分:0)

您可以使用List<Delegate>并调用DynamicInvoke方法。

速度很慢,但dynamic也很慢 (我不知道哪个更慢)