Я не могу заставить динамический метод ExpandoObject напрямую вызываться в VB.NET. В С# работает следующее:
dynamic obj = new System.Dynamic.ExpandoObject();
var called = false;
obj.ForceRefresh = new Action(() => called = true);
obj.ForceRefresh();
Я бы подумал, что то же самое в vb.net будет:
Dim called = False
Dim obj As Object = New Dynamic.ExpandoObject
obj.ForceRefresh = New Action(Sub() called = True)
obj.ForceRefresh() 'No default member found for type 'Action'.
obj.ForceRefresh.Invoke() 'this works
obj.ForceRefresh
выдает «Не найден элемент по умолчанию для типа« Действие »
Это работает, если я поставлю Invoke, но это не вариант (это очень упрощенный пример модульного теста moq, тестируемые объекты будут вызывать функции, поэтому я не могу их изменить)
Есть ли способ настроить динамический метод в vb.net, чтобы я мог вызывать его без вызова?