J'ai un class
que je veux obtenir le Cloudscribe SiteId
mais je ne sais pas comment y accéder.Accéder à CloudScribe SiteID en dehors du contrôleur ou des vues
Si j'utilisais un controller
alors je serais capable de compter sur le SiteContext
pour être DI'd dans le constructeur mais cela ne fonctionne pas dans cette instance.
Quelqu'un peut-il me dire comment je peux accéder à la propriété SiteId
dans le code ci-dessous?
using Microsoft.AspNetCore.SignalR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoLabR
{
public class Messaging : Hub
{
private string _siteId;
public Messaging()
{
//Code here to get SiteID
_siteId = "<<Code for getting Site ID";
}
public Task Post(string message)
{
return Clients.Group(_siteId).InvokeAsync("Post", message);
}
public Task JoinRoom()
{
Groups.AddAsync(Context.ConnectionId, _siteId);
return Clients.Group(_siteId).InvokeAsync("Post", Context.User.Identity.Name + " joined. " + _siteId);
}
}
}
Merci @Pawel J'ai supposé à tort que le SiteContext pouvait déjà être injecté dans les contrôleurs sur le site, il fonctionnerait aussi pour mon Hub, mais il semble que je devais le référencer explicitement dans mon 'startup.cs' –