FindDynamicComponentProperty() public method

public FindDynamicComponentProperty ( string fullPath, bool caseSensitive ) : DynamicComponentProperty
fullPath string
caseSensitive bool
return DynamicComponentProperty
コード例 #1
0
        private string ResolveName(MappedClassMetadata mappedClass, string mappedClassPath, string name, ref System.Type type)
        {
            if (type == null)
            {
                return(name);
            }

            // Dynamic component support
            if (type == typeof(IDictionary) && mappedClass != null)
            {
                string fullPath = mappedClassPath + "." + name;

                var dynamicProperty = mappedClass.FindDynamicComponentProperty(fullPath, _context.CaseSensitiveResolve);

                if (dynamicProperty == null)
                {
                    throw new QueryException(String.Format(
                                                 ErrorMessages.Resolve_CannotResolveDynamicComponentMember, name, mappedClassPath, type
                                                 ));
                }

                type = dynamicProperty.Type;
                return(dynamicProperty.Name);
            }

            var resolvedName = _context.NameResolver.ResolveName(name, type, _context.CaseSensitiveResolve);

            if (resolvedName != null)
            {
                type = resolvedName.Type;
                return(resolvedName.Name);
            }

            /**
             * 01.06.2020: Exception removed. If name cannot be resolved, then the calling method can try to resolve the name with the inherited type before throwing the exception.
             */
            return(string.Empty);
        }
コード例 #2
0
        private string ResolveName(MappedClassMetadata mappedClass, string mappedClassPath, string name, ref System.Type type)
        {
            if (type == null)
            {
                return(name);
            }

            // Dynamic component support
            if (type == typeof(IDictionary) && mappedClass != null)
            {
                string fullPath = mappedClassPath + "." + name;

                var dynamicProperty = mappedClass.FindDynamicComponentProperty(fullPath, _context.CaseSensitiveResolve);

                if (dynamicProperty == null)
                {
                    throw new QueryException(String.Format(
                                                 ErrorMessages.Resolve_CannotResolveDynamicComponentMember, name, mappedClassPath, type
                                                 ));
                }

                type = dynamicProperty.Type;
                return(dynamicProperty.Name);
            }

            var resolvedName = _context.NameResolver.ResolveName(name, type, _context.CaseSensitiveResolve);

            if (resolvedName != null)
            {
                type = resolvedName.Type;
                return(resolvedName.Name);
            }

            throw new QueryException(String.Format(
                                         ErrorMessages.Resolve_CannotResolveName, name, type)
                                     );
        }
コード例 #3
0
        private string ResolveName(MappedClassMetadata mappedClass, string mappedClassPath, string name, ref System.Type type)
        {
            if (type == null)
                return name;

            // Dynamic component support
            if (type == typeof(IDictionary) && mappedClass != null)
            {
                string fullPath = mappedClassPath + "." + name;

                var dynamicProperty = mappedClass.FindDynamicComponentProperty(fullPath, _context.CaseSensitiveResolve);

                if (dynamicProperty == null)
                    throw new QueryException(String.Format(
                        ErrorMessages.Resolve_CannotResolveDynamicComponentMember, name, mappedClassPath, type
                    ));

                type = dynamicProperty.Type;
                return dynamicProperty.Name;
            }

            var resolvedName = _context.NameResolver.ResolveName(name, type, _context.CaseSensitiveResolve);
            if (resolvedName != null)
            {
                type = resolvedName.Type;
                return resolvedName.Name;
            }

            throw new QueryException(String.Format(
                ErrorMessages.Resolve_CannotResolveName, name, type)
            );
        }