+ public static string GetFirstValue(this HttpResponseHeaders headers, string name)\r
+ {\r
+ if (headers==null)\r
+ throw new ArgumentNullException("headers");\r
+ if (String.IsNullOrWhiteSpace(name))\r
+ throw new ArgumentNullException("name");\r
+ Contract.EndContractBlock();\r
+\r
+ IEnumerable<string> values;\r
+ if (headers.TryGetValues(name, out values))\r
+ {\r
+ return values.FirstOrDefault();\r
+ }\r
+ return null;\r
+ }\r
+\r
+ public static Dictionary<string, string> GetMeta(this HttpResponseHeaders headers,string metaPrefix)\r
+ {\r
+ if (headers == null)\r
+ throw new ArgumentNullException("headers");\r
+ if (String.IsNullOrWhiteSpace(metaPrefix))\r
+ throw new ArgumentNullException("metaPrefix");\r
+ Contract.EndContractBlock();\r
+\r
+ var dict = (from header in headers\r
+ where header.Key.StartsWith(metaPrefix)\r
+ let name = header.Key.Substring(metaPrefix.Length)\r
+ select new { Name = name, Value = String.Join(",",header.Value) })\r
+ .ToDictionary(t => t.Name, t => t.Value);\r
+ return dict;\r
+ }\r
+\r