public void BuilderShouldUseDynamicMember3() { const string targetPath = "Text"; var targetObj = new object(); var builder = new BindingBuilder(); var src = new BindingSourceModel { ObjectProperty = new BindingSourceModel { StringProperty = "test" } }; builder.Bind(targetObj, targetPath).To<BindingSourceModel>(() => model => model.GetObjectProperty().Member<string>("StringProperty").Member<int>("Length")); IList<Func<IDataContext, IBindingSource>> sources = builder.GetData(BindingBuilderConstants.Sources); IBindingSource source = sources.Single().Invoke(builder); BindingParserTest.BindingSourceShouldBeValidDataContext(targetObj, source, string.Empty); var sourceObj = new BindingSourceModel(); BindingServiceProvider.ContextManager.GetBindingContext(targetObj).Value = sourceObj; BindingParserTest.BindingSourceShouldBeValidDataContext(targetObj, source, string.Empty); var data = builder.GetData(BindingBuilderConstants.MultiExpression); data.Invoke(builder, new[] { src }).ShouldEqual(((BindingSourceModel)src.GetObjectProperty()).StringProperty.Length); }