Похоже, что может быть ошибкой - вероятно, в DynamicObject
. Если вы добавите метод Wrap
к Proxy
, например:
public void Wrap(ref int x, ref int y)
{
target.Swap(ref x, ref y);
}
Тогда, хотя это все еще вызывается динамически (т. Е. Код в Main
остается неизменным), код работает ... так что, по крайней мере, общий уровень "как работает динамический объект" поддерживает передачу по ссылке.
Я подозреваю, что если действительно действительно ошибка в DLR, то может быть слишком поздно исправлять для .NET 4 - но в любом случае стоит сообщить о Connect , поэтому исправлено в пакете обновления. В качестве альтернативы, если это преднамеренное ограничение / ограничение, оно должно быть четко задокументировано в MSDN (насколько я могу судить, на данный момент это не так).