Пример #1
0
        // <summary>
        // Builds identity based on the functionName and parameters metadata.
        // Returns string in the form of "functionName (param1, param2, ... paramN)".
        // </summary>
        internal static void BuildIdentity <TParameterMetadata>(
            StringBuilder builder,
            string functionName,
            IEnumerable <TParameterMetadata> functionParameters,
            Func <TParameterMetadata, TypeUsage> getParameterTypeUsage,
            Func <TParameterMetadata, ParameterMode> getParameterMode)
        {
            //
            // Note: some callers depend on the format of the returned identity string.
            //

            // Start with the function name
            builder.Append(functionName);

            // Then add the string representing the list of parameters
            builder.Append('(');
            var first = true;

            foreach (var parameter in functionParameters)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    builder.Append(",");
                }
                builder.Append(Helper.ToString(getParameterMode(parameter)));
                builder.Append(' ');
                getParameterTypeUsage(parameter).BuildIdentity(builder);
            }
            builder.Append(')');
        }