如何获取expando对象的调用成员名称?
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 但这不是正确的方法。
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?
}
As code above, test.B is not a member of 'test'. But how can i know 'B' is calling. The only way i found is looking into ex.Message but it's not a proper way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用
DynamicObject
而不是ExpandoObject
,将会更容易。It will be easier if you use
DynamicObject
instead ofExpandoObject
.尝试使用
StackFrame
:Try using the
StackFrame
: