gpt4 book ai didi

c# - 如何获取 expando 对象的调用成员名称?

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

dynamic test = new ExpandoObject();
test.A = "ok";

try{
Console.WriteLine(test.B);
}
catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException ex){
// how can i know that B was invoke?
}

如上代码,test.B 不是“test”的成员。但是我怎么知道'B'正在打电话。我找到的唯一方法是查看 ex.Message,但这不是正确的方法。

最佳答案

如果使用 DynamicObject 而不是 ExpandoObject 会更容易。

class MyDynamicObject : DynamicObject
{
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
Console.WriteLine(binder.Name);
//simply prints the name, you can raise an event here or something else
return base.TryGetMember(binder, out result);
}
}

关于c# - 如何获取 expando 对象的调用成员名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446985/

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