// resolving a style delegate parameter
        public IPropProvider Resolve(ComponentBuilderContext context, ElementBuilder element, PropTypeInfo prop, YamlNode node)
        {
            if (!IsStyleDelegate(prop.Type))
            {
                return(null);
            }

            var provider = new Provider(prop.Type);

            foreach (var(key, value) in node.ToMapping())
            {
                try
                {
                    // find member by name
                    var memberName = key.ToScalar().Value;
                    var member     = provider.FindMember(memberName);

                    // resolve member using prop provider
                    var memberProvider = member == null ? null : ((IYamlComponentBuilder)context.Builder).PropResolver.Resolve(context, null, member, value);

                    if (memberProvider == null)
                    {
                        throw new YamlComponentException($"Cannot resolve property or field '{memberName}' in element {provider.DrawableType}.", key);
                    }

                    provider.Properties[member] = memberProvider;
                }
                catch (Exception e)
                {
                    context.OnException(e);
                }
            }

            return(provider);
        }