2017-06-06 28 views
1

注:簡潔にするために依存性注入

、私は私のコードを削減し、それが簡単になります。

コード/セットアップ:

私はクラスを持っている:

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" /> 
+1

Microsoft.AspNetCore.SignalR.Serverは廃止され、出荷されません。 – Pawel

答えて