Насколько я понимаю, вам нужно вернуть более полные данные, когда ретривер является администратором, и не очень полные, когда нет.
Если это цель, то вы можете извлечь соответствующие данные из базы данных и заполнить объект одного из следующих классов:
public class PersonData {
public string Name { get; private set; }
public string Surname { get; private set; }
}
public class ExtendedPersonData: PersonData {
public string Name { get; private set; }
public string Surname { get; private set; }
public string Address { get; private set; }
}
Поскольку последний класс наследует от первого, вы можете просто создать List<PersonData>
, и он будет охватывать оба случая.
Другой, другой подход: класс данных учитывает пользователя, чтобы возвращать или нет определенные данные:
class Person {
public Person(User usr, string address)
{
this.User = usr;
this.address = address;
}
public string User { get; private set; }
public string Name { get; private set; }
public string Surname { get; private set; }
public string Address {
get {
string toret = "N/A";
if ( this.User.IsAdmin() ) {
toret = this.address;
}
return toret;
}
}
private string address;
}
Ни одно из обоих решений не является идеальным, и у обоих есть свои проблемы, но проблема, по крайней мере, как вы ее сформулировали, не может быть решена.
Надеюсь, это поможет.