фиксация стандартной ошибки в переменную в ударе

Ну, я использовал другой подход, я расширил класс ApplicationUser следующим образом:

    // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
    //public int ApplicationUserId { get; set; }
    //public string Name { get; set; }
    //public string Address { get; set; }
    //public string City { get; set; }
    //public string State { get; set; }
    //public string Zip { get; set; }
    [Required]
    public string Email { get; set; }
    [Required]
    public override string UserName { get; set; }
    [NotMapped]
    public string ConnectionId { get; set; }
    [NotMapped]
    public string ChattingUserConnectionId { get; set; }
    //public string HomeTown { get; set; }
    //public DateTime? BirthDate { get; set; }
}

И в моем хабе я делаю что-то подобное:

public class ChatHub : Hub
{
    #region Data Members
    private static ApplicationDbContext applicationDbContext = new ApplicationDbContext();
    private static UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(applicationDbContext));
    private static List<ApplicationUser> connectedUsers = new List<ApplicationUser>();

И когда пользователь подключается к чату, я получаю его объект ApplicationUser по его имени пользователя и добавляю его в список подключенных пользователей. Когда он отключается, я удаляю его.

Я столкнулся с некоторыми случайными исключениями с состояниями EF, которые заставили меня создавать ApplicationDbContext и UserManager каждый раз, когда к ним обращаются, вместо того, чтобы устанавливать его в статическом объекте:

 private ApplicationUser GetCurrentUser()
    {
        ApplicationDbContext applicationDbContext = new ApplicationDbContext();
        UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(applicationDbContext));
        var userName = Context.User.Identity.GetUserName();
        var user = userManager.FindByName<ApplicationUser>(userName);

        return user;
    }

Редактировать:

У кода концентратора есть некоторые проблемы с загрузкой дочерних объектов пользователя. Этот код, который также используется в шаблоне asp.net, будет работать лучше, ApplicationDBContext не требуется:

    private ApplicationUserManager _userManager
    {
        get
        {
            return HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
        }
    }


    var user = _userManager.FindByName<ApplicationUser, string>(userName);
6
задан nedned 12 June 2009 в 01:15
поделиться

2 ответа

Единственное изменение, которое я хотел бы сделать:

var=$(time (mycommand &> /dev/null) 2>&1)

Синтаксис команды $ () , если его поддерживает оболочка, лучше по двум причинам:

  • нет необходимости экранировать обратную косую черту,
  • вы можете вкладывать команды без экранирования обратных кавычек.

Описание различий: Подстановка команд Bash

8
ответ дан 10 December 2019 в 02:52
поделиться

Если вам действительно не нужны stdout или stderr из синхронизируемой программы, это прекрасный способ сделать это, и он должен быть таким же эффективным, как и любой другой метод.

1
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: