public ValueTableKey(object item, PropertyDescriptor pd)
{
Invariant.Assert(item != null && pd != null);
// store weak references to item and pd, so as not to affect their
// GC behavior. But remember their hashcode.
_item = new WeakReference(item);
_descriptor = new WeakReference(pd);
_hashCode = unchecked(item.GetHashCode() + pd.GetHashCode());
}