public string GetReference(object context, object value)
{
string referenceStr;
if (value is IIDObject) {
referenceStr = (value as IIDObject).ID.ToString ();
} else {
if (!_objectstoid.TryGetValue (value, out referenceStr)) {
_references++;
referenceStr = _references.ToString (CultureInfo.InvariantCulture);
}
}
_idtoobjects [referenceStr] = value;
_objectstoid [value] = referenceStr;
return referenceStr;
}