public sealed override async Task <object> GetInstanceAsync(ServerActionContext context, Type type) { IContractSession contractSession; if (context.Action == context.Contract.Session.InitSession) { contractSession = await _sessionFactory.CreateAsync(context.HttpContext, () => CreateInstance(context, type)); context.ContractInstance = contractSession.Instance; context.HttpContext.Features.Set <IContractSession>(contractSession); await OnInstanceCreatedAsync(context, contractSession.SessionId); return(contractSession.Instance); } contractSession = await _sessionFactory.GetExistingAsync(context.HttpContext, () => CreateInstance(context, type)); context.HttpContext.Features.Set <IContractSession>(contractSession); return(contractSession.Instance); }