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); }
public override PropertyTreeMetaObject Process(PropertyTreeBinderImpl parent, PropertyTreeMetaObject target, PropertyTreeNavigator self, NodeList children) { foreach (var child in children.Rest()) { parent._errors.BindUnmatchedProperty(child.QualifiedName, target.ComponentType, child.FileLocation); } return(target); }
internal PropertyTreeMetaObject TopLevelBind(PropertyTreeMetaObject obj, PropertyTreeBinderOptions options, IServiceProvider serviceProvider) { return(PropertyTreeMetaObjectBinder.Create(options).Bind(obj, this, serviceProvider)); }