2010-04-20 17 views
4

在Silverlight中,System.Windows.ThreadingDispatcher.BeginInvoke()需要Action<T>或委託來調用。如何阻止ReSharper在預計Action的lambda表達式上顯示錯誤?

.NET允許我傳遞lambda表達式。但ReSharper的認爲這是一個錯誤,說「無法解決方法‘的BeginInvoke(lambda表達式)’」:Dispatcher.BeginInvoke(() => { DoSomething(); })

錯誤消失,如果我明確創建Action周圍像這樣的表達:Dispatcher.BeginInvoke(new Action<object>(o => { DoSomething(); }));

我喜歡在這種情況下代碼量最少,以獲得最佳可讀性。有沒有辦法禁用這個特定的ReSharper錯誤通知?我嘗試了一些選項,但找不到它。

感謝, 卡爾

+0

你確定Dispatcher.BeginInvoke(()=> {DoSomething();})編譯?它不 – 2010-04-20 08:36:15

+0

對不起,我忘了提及我瞄準Silverlight ...它在Silverlight項目編譯Dispatcher.BeginInvoke採取行動,但不是在它只接受委託的完整框架。 – carlmon 2010-04-20 09:47:51

+0

您使用的是什麼版本的ReSharper?你有沒有嘗試每晚構建,看看它是否仍然是一個問題? – womp 2010-04-20 18:18:58

回答

5

眼下ReSharper的5擁有的Silverlight 4,所有這些問題將在修正錯誤的更新來處理問題。

這些問題的根源在於SL3和SL4 mscorlibs在其中定義了不同的類型,但具有相同的完整程序集名稱。

+0

任何想法,當這將是出局?這是我第一次上市時報道的,他們說其他人報道了這一點。我只是不確定他們需要多長時間才能獲得補丁。 – TravisWhidden 2010-05-24 19:14:59

+0

這固定在5.1的當前EAP(這是免費的) – BarrettJ 2010-07-06 20:55:04