Я работаю над проектом, в котором ведется большая работа по управлению аккаунтом. К сожалению, парень, который все это устроил, находится в отпуске, и что-то здесь нужно сделать, но я не могу понять, что именно здесь происходит (я новичок в этом ...)
Итак, насколько я понимаю: когда кто-то входит в наше приложение, создается одноуровневая учетная запись. Здесь важны два класса:
namespace Accounts
{
//Generische und Lazy Singleton-Abstraktion
public abstract class AbstractAccount<T> where T : class
{
// Lazy Instanziierung
private static readonly Lazy<T> _instance = new Lazy<T>(() => CreateSingletonInstance());
public static T Instance
{
get
{
// throw new System.InvalidOperationException("out");
return _instance.Value;
}
}
private static T CreateSingletonInstance()
{
// Konstruktion des Singleton-Objekts
return Activator.CreateInstance(typeof(T), true) as T;
}
}
}
и
class Account : AbstractAccount<Account>
{
// öffentliche Felder und Methoden
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public string Description { get; set; }
public List<string>Friendlist { get; set; }
public Bitmap ProfilePicutre { get; set; }
public int Experience { get; set; }
public int gender { get; set; }
public DateTime lastLogin { get; set; }
public DateTime dateCreated { get; set; }
public string Locality { get; set; }
public string Country { get; set; }
public string CountryCode { get; set; }
public int level { get; set; }
public void SetCurrentAccount(tblUsers user, DateTime lastLogin)
{
this.Username = user.getUsername();
this.Email = user.getEmail();
this.Password = user.getPassword();
this.Description = user.getdescription();
this.Experience = user.getexperience();
this.gender = user.getgender();
this.lastLogin = lastLogin;
this.dateCreated = user.getDateCreated();
this.level = CheckLevel(Experience);
}
}
Теперь возникает проблема: когда пользователь выходит из системы, а затем создает новую учетную запись, он или она все равно будут настроены на свойства пользователя, который только что вышел из системы.
Например: если у него было 1000 очков XP, он выходит из системы и создает новую учетную запись, эта учетная запись будет начинаться не с 0 очков, а с 1000.
Я знаю, что он довольно (возможно, даже невозможен) для вас справиться с другого компьютера, но мне действительно нужна помощь прямо здесь:
private void logoutClick(object sender, EventArgs e)
{
Context mContext = Android.App.Application.Context;
AppPreferences ap = new AppPreferences(mContext);
ap.deletePreferences();
this.FinishAffinity();
//Remove static variables. Just to be sure!
SaveAccountInfo.bpLandScapePicFull = null;
SaveAccountInfo.bpLandScapePicThumb = null;
SaveAccountInfo.bpProfilePicFull = null;
SaveAccountInfo.bpProfilePicThumb = null;
StartActivity(typeof(Activity_AcctCreationLogin));
Finish();
}
Если пользователь должен был выйти из системы, синглтон должен быть полностью уничтожен и настроен заново при создании другой учетной записи. Я пытался "Account.Instance.Dispose()"
но, к сожалению, не было такого метода, как «распоряжаться» после экземпляра.
Есть ли шанс, что вы, ребята, сможете мне немного помочь? Это мне потрясающе! Спасибо! :)