示例#1
0
        private static void ParseAttributes <T>(MediaTypeDescriptor.Builder <T> builder, ArraySegment <string> parameters) where T : MediaTypeDescriptor
        {
            foreach (var parameter in parameters)
            {
                var parameterFieldAndValue = parameter.Split(MediaTypeDescriptor.ParameterAssignment);

                if (parameterFieldAndValue.Length == ParameterAndValueSize)
                {
                    var attributeName = parameterFieldAndValue[ParameterFieldOffset];
                    var value         = parameterFieldAndValue[ParameterValueOffset];
                    builder.WithParameter(attributeName, value);
                }
            }
        }
示例#2
0
        private static void ParseAttributes <T>(MediaTypeDescriptor.Builder <T> builder, ArraySegment <string> parameters) where T : MediaTypeDescriptor
        {
            foreach (var parameter in parameters)
            {
                var parameterFieldAndValue = parameter.Split(MediaTypeDescriptor.PARAMETER_ASSIGNMENT);

                if (parameterFieldAndValue.Length == PARAMETER_AND_VALUE_SIZE)
                {
                    var attributeName = parameterFieldAndValue[PARAMETER_FIELD_OFFSET];
                    var value         = parameterFieldAndValue[PARAMETER_VALUE_OFFSET];
                    builder.WithParameter(attributeName, value);
                }
            }
        }
示例#3
0
        public static T ParseFrom <T>(string mediaTypeDescriptor, MediaTypeDescriptor.Builder <T> builder) where T : MediaTypeDescriptor
        {
            var descriptorParts = mediaTypeDescriptor.Split(MediaTypeDescriptor.ParameterSeparator);

            if (descriptorParts.Length > 1)
            {
                ParseAttributes(builder, new ArraySegment <string>(descriptorParts, 1, descriptorParts.Length - 1));
            }

            var mimeParts = descriptorParts[0].Split(MediaTypeDescriptor.MimeSubtypeSeparator);

            if (mimeParts.Length == MimeTypeAndSubtypeSize)
            {
                builder.WithMimeType(mimeParts[0].Trim())
                .WithMimeSubType(mimeParts[1].Trim());
            }

            return(builder.Build());
        }
示例#4
0
        public static T ParseFrom <T>(string mediaTypeDescriptor, MediaTypeDescriptor.Builder <T> builder) where T : MediaTypeDescriptor
        {
            var descriptorParts = mediaTypeDescriptor.Split(MediaTypeDescriptor.PARAMETER_SEPARATOR);

            if (descriptorParts.Length > 1)
            {
                ParseAttributes(builder, new ArraySegment <string>(descriptorParts, 1, descriptorParts.Length - 1));
            }

            var mimeParts = descriptorParts[0].Split(MediaTypeDescriptor.MIME_SUBTYPE_SEPARATOR);

            if (mimeParts.Length == MIME_TYPE_AND_SUBTYPE_SIZE)
            {
                builder.WithMimeType(mimeParts[0].Trim())
                .WithMimeSubType(mimeParts[1].Trim());
            }

            return(builder.Build());
        }