Я знаю, что это, должно быть, старый, усталый вопрос, но я не могу найти что-нибудь через моего верного друга (он же Google).
У меня есть приложение winforms .net 3.5 c #, которое предоставляет пользователю форму входа при запуске приложения. После успешного входа в систему я хочу убежать в БД, получить некоторые пользовательские данные и сохранить их (в свойствах) в классе с именем AppCurrentUser.cs , который может быть доступен для всех классов. в сборке - цель здесь в том, чтобы я мог заполнить некоторые свойства однократным чтением данных, вместо того, чтобы каждый раз вызывать БД. В веб-приложении я обычно использую переменные сеанса, и я знаю, что концепция этого не существует в WinForms.
Структура класса похожа на следующую:
public class AppCurrentUser {
public AppCurrentUser() { }
public Guid UserName { get; set; }
public List<string> Roles { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Теперь у меня есть несколько вариантов, по которым мне нужен совет специалиста:
Будучи «тупым» классом, я должен сделать свойства нестатичными, создать экземпляр класса и затем установить свойства ... но тогда я смогу получить доступ к этому экземпляру только из класса, в котором он был создан , верно?
Логически я считаю, что эти свойства должны быть статическими, так как я буду использовать класс один раз во всем приложении (и не , создающий его новые экземпляры), и это свойство значения будут "сброшены" при закрытии приложения. (Если я создаю его экземпляр, я могу избавиться от него при закрытии приложения)
Как мне структурировать свой класс и как получить доступ к его свойствам во всех классах в моей сборке? Я действительно буду признателен за ваш честный и ценный совет по этому вопросу!
Спасибо!