public TypeCacheItem(Type type)
{
if (type == null)
{
throw new ArgumentNullException("type", "type cannot be null.");
}
this.type = type;
this.hasCustomContract = type.GetCustomAttributes(typeof(DataContractAttribute), false).Length > 0;
this.InitializeFields();
this.InitializeProperties();
}