NameValueCollectionAdapter
using System;
using System.Collections.Specialized;
using System.Linq;
namespace Castle.Components.DictionaryAdapter
{
public class NameValueCollectionAdapter : AbstractDictionaryAdapter
{
private readonly NameValueCollection nameValues;
public override bool IsReadOnly => false;
public override object this[object key] {
get {
return nameValues[key.ToString()];
}
set {
string value2 = value?.ToString();
nameValues[key.ToString()] = value2;
}
}
public NameValueCollectionAdapter(NameValueCollection nameValues)
{
this.nameValues = nameValues;
}
public override bool Contains(object key)
{
if (key == null)
throw new ArgumentNullException("key");
if (this[key] != null)
return true;
return nameValues.AllKeys.Contains(key.ToString(), StringComparer.OrdinalIgnoreCase);
}
public static NameValueCollectionAdapter Adapt(NameValueCollection nameValues)
{
return new NameValueCollectionAdapter(nameValues);
}
}
}