public object Bind(Type componentType, PropertyTreeBinderOptions options)
        {
            if (componentType == null)
            {
                throw new ArgumentNullException("componentType");
            }

            var obj = PropertyTreeMetaObject.Create(componentType);

            return(TopLevelBind(obj, options, null).Component);
        }
        public void ImplicitDirective_should_not_try_indexer_properties()
        {
            var props  = new C();
            var target = PropertyTreeMetaObject.Create(props);

            PropertyTreeBinderImpl.ImplicitDirective(target, "source");

            string text;

            Assert.False(props._values.TryGetValue("source", out text));
        }
        public T Bind <T>(T component, PropertyTreeBinderOptions options)
        {
            PropertyTreeMetaObject obj;

            if (ReferenceEquals(component, null))
            {
                obj = PropertyTreeMetaObject.Create(typeof(T));
            }
            else
            {
                obj = PropertyTreeMetaObject.Create(component);
            }

            return((T)TopLevelBind(obj, options, null).Component);
        }