fredrik.eriksson

Coffee and a keyboard

Dynamic resolving order

public class Person : DynamicObject
{
    public string Name { get; set; }

    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        result = "Fredrik";
        return true;
    }
}

public class DynamicTest
{
    [Fact]
    public void DynamicResolving()
    {
        dynamic p = new Person { Name = "John" };

        Assert.Equal("Fredrik", p.Name);
    }
}

 

So I expected this test to pass but it didn’t because the property always gets resolved before TryGetMember.