Beispiel #1
0
        public override string ToString()
        {
            const string separator = ", ";

            var sb = new StringBuilder();

            if (NoStore)
            {
                sb.Append("no-store");
                sb.Append(separator);
            }

            if (NoTransform)
            {
                sb.Append("no-transform");
                sb.Append(separator);
            }

            if (OnlyIfCached)
            {
                sb.Append("only-if-cached");
                sb.Append(separator);
            }

            if (Public)
            {
                sb.Append("public");
                sb.Append(separator);
            }

            if (MustRevalidate)
            {
                sb.Append("must-revalidate");
                sb.Append(separator);
            }

            if (ProxyRevalidate)
            {
                sb.Append("proxy-revalidate");
                sb.Append(separator);
            }

            if (NoCache)
            {
                sb.Append("no-cache");
                if (no_cache_headers != null)
                {
                    sb.Append("=\"");
                    no_cache_headers.ToStringBuilder(sb);
                    sb.Append("\"");
                }

                sb.Append(separator);
            }

            if (MaxAge != null)
            {
                sb.Append("max-age=");
                sb.Append(MaxAge.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture));
                sb.Append(separator);
            }

            if (SharedMaxAge != null)
            {
                sb.Append("s-maxage=");
                sb.Append(SharedMaxAge.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture));
                sb.Append(separator);
            }

            if (MaxStale)
            {
                sb.Append("max-stale");
                if (MaxStaleLimit != null)
                {
                    sb.Append("=");
                    sb.Append(MaxStaleLimit.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture));
                }

                sb.Append(separator);
            }

            if (MinFresh != null)
            {
                sb.Append("min-fresh=");
                sb.Append(MinFresh.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture));
                sb.Append(separator);
            }

            if (Private)
            {
                sb.Append("private");
                if (private_headers != null)
                {
                    sb.Append("=\"");
                    private_headers.ToStringBuilder(sb);
                    sb.Append("\"");
                }

                sb.Append(separator);
            }

            CollectionExtensions.ToStringBuilder(extensions, sb);

            if (sb.Length > 2 && sb[sb.Length - 2] == ',' && sb[sb.Length - 1] == ' ')
            {
                sb.Remove(sb.Length - 2, 2);
            }

            return(sb.ToString());
        }