2010-02-15 29 views
5

在C#4中,當從DynamicObject派生並重寫TryInvokeMember時,如何確定在調用站點提供的任何參數是否已通過out或ref語義傳遞?我可以在提供的綁定器中看到包含此​​信息的一些私有字段(即Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo屬性),但似乎無法訪問。我認爲這些信息必須在某處可用,否則會嚴重地限制人們對提供的輸入的瞭解。C#4:確定動態調用中的參數傳遞語義

回答

2

我跟DLR團隊談過這件事。不幸的是,答案是否定的,這些信息不適用於DynamicObject。

原因是ref/out參數非常特定於C#。動態對象可以在多種語言之間共享,並不是所有的語言都有這些符號。 DynamicObject是「按值調用」的,因此您的對象可以被不同的API使用。

+0

感謝您的幫助。我懷疑這是不可能的。 – 2010-02-22 14:37:51