public void verify_logic_with_derived_context() { var parser = new Parser(); var firstDerived = new FirstDerived {Value = true}; var secondDerived = new SecondDerived {Value = true}; Assert.IsTrue(parser.Parse(firstDerived.GetType(), "Value").Invoke(firstDerived)); Assert.IsTrue(parser.Parse(secondDerived.GetType(), "Value").Invoke(secondDerived)); Assert.IsTrue(parser.Parse(typeof(ModelBase), "Value").Invoke(firstDerived)); Assert.IsTrue(parser.Parse(typeof(ModelBase), "Value").Invoke(secondDerived)); }