dynamic obj = new System.Dynamic.ExpandoObject(); obj.Name = "John"; var metaObj = new System.Dynamic.DynamicMetaObject(Expression.Constant("Foo"), BindingRestrictions.Empty, obj); metaObj.BindGetMember(new System.Dynamic.GetMemberBinder("Name", false), new dynamic[] { }); Console.WriteLine(obj.Name); // Output: "Foo"
dynamic obj = new System.Dynamic.ExpandoObject(); var metaObj = new System.Dynamic.DynamicMetaObject(Expression.Call(Expression.Constant(obj), typeof(object).GetMethod("ToString")), BindingRestrictions.Empty, obj); metaObj.BindInvokeMember(new System.Dynamic.InvokeMemberBinder("AnyMethod", new dynamic[] { }, null), new dynamic[] { }); Console.WriteLine(obj.AnyMethod()); // Output: "System.Dynamic.ExpandoObject"The DynamicMetaObject class is part of the System.Dynamic.Runtime.CompilerServices package library in C#.