protected RmResource(
SerializationInfo info,
StreamingContext context)
: this()
{
// must make a deep copy of attribute keys to avoid modifying the
// collection being iterated
List<RmAttributeName> keysCopy = new List<RmAttributeName>(Keys);
foreach (RmAttributeName name in keysCopy) {
this[name] = (RmAttributeValue)info.GetValue(name.Name, typeof(RmAttributeValue));
}
}