注:簡潔にするために依存性注入
、私は私のコードを削減し、それが簡単になります。
コード/セットアップ:
私はクラスを持っている:
class MyService
{
public Guid InstanceID = Guid.NewGuid;
スコープように私は私のサービスでMyService
を追加しました:
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<MyService, MyService>();
を次に私の見解では、私は注入サービス:
@inject MyService _myService
@_myService.InstanceID //display
上記のコードは、スコープ設定されたサービスから期待されるとおり、リクエストごとに異なる結果を表示します。
しかし、SignalR Hubにサービスを注入すると、私は常に同じ出力を得ます。
MyHub(MyService myService)
{
_myService = myService;
}
public void Test()
{
Clients.Caller.Log(_myService.InstanceID); //Log is a custom function in JS
ハブ自体がTest()
へのすべての呼び出しをインスタンス化しているが、MyService
がそれに注入されるのインスタンスは常に同じです。
私の要件:
私はMyService
の新しいインスタンスをハブにコントローラ/ビューすべてのリクエストで同じように注入することにしたいです。
質問:
これはSignalRのデフォルトの動作ですか?または私は何か間違っているのですか?使用さ
パッケージ:
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="0.2.0-*" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Server" Version="0.2.0-rtm-22752" />
Microsoft.AspNetCore.SignalR.Serverは廃止され、出荷されません。 – Pawel