public object Invoke(object obj, object root) { DbRef dbRef = obj as DbRef; if (dbRef == null) { throw new ArgumentException(string.Format("Invalid type of argument:", obj)); } IEntity result = dbRef.GetObject(); return(result.GetValue(_member)); }