gpt4 book ai didi

c# - 动态/ExpandoObject 方法抛出 'No default member found for type ' 操作'

转载 作者:太空宇宙 更新时间:2023-11-03 13:21:29 24 4
gpt4 key购买 nike

我无法在 VB.NET 中直接调用 ExpandoObject 上的动态方法。在 C# 中,以下工作:

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 抛出“没有找到类型‘Action’的默认成员”

如果我放置一个调用它会起作用,但这不是一个选项(这是最小起订量单元测试的一个非常简化的例子,被测试的对象将调用函数所以我不能改变它们)

有没有办法在 vb.net 中设置动态方法,这样我就可以在不调用的情况下调用它?

最佳答案

似乎没有办法解决这个问题 - 您需要使用“Invoke”来调用 VB 中动态添加的方法。

以下显示 C# 与 VB 示例的 Microsoft 链接也证实了这一点: http://msdn.microsoft.com/en-ca/library/system.dynamic.expandoobject.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-4

关于c# - 动态/ExpandoObject 方法抛出 'No default member found for type ' 操作',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com