問題タブ [light-inject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2499 参照

c# - SignalR サーバー --> クライアント呼び出しが機能しない

現在、SignalR を使用して、サーバーと、サーバー自体によって生成された複数の個別のプロセスとの間の通信を行っています。サーバーとクライアントの両方が C# でコーディングされています。私は SignalR 2.2.0.0 を使用しています。サーバー側では、OWIN を使用してサーバーを実行しています。また、LightInject を IoC コンテナーとして使用しています。

これが私のコードです:

クライアント側では、次のように登録します。

サーバー側では、次の方法で終了リクエストを送信します。

でコールバックを受け取ることはありませんCloseRequestedCallback。クライアント側でもサーバー側でも、ログにエラーが記録されません。

ここで何が間違っていましたか?

編集 09/10/15

いくつかの調査と修正を行った結果、IoC コンテナーの交換に関連していることがわかりました。LightInject にリンクされているものをすべて削除し、SignalR をそのまま使用すると、すべてが機能しました。LightInjectが SignalR との統合を文書化していたので、これには驚きました。

GlobalHost.DependencyResolverこれを見つけた後、 が に供給していたものと同じではないことに気付きましたHubConfiguration。追加したら

内でコールバックを受信して​​いますCloseRequestedCallback。残念ながら、クライアントからサーバーにメソッドを呼び出すとすぐに次のエラーが発生します。

Microsoft.AspNet.SignalR.Client.Infrastructure.SlowCallbackException

デッドロックの可能性が検出されました。「HubProxy.On」または「Connection.Received」で登録されたコールバックが少なくとも 10 秒間実行されています。

私が見つけた修正と、それがシステムに与える可能性のある影響についてはわかりません。GlobalHost.DependencyResolverデフォルトのコンテンツをすべて登録せずに、自分のものに置き換えてもよろしいですか?

編集 2 09/10/15

thisによると、を変更することGlobalHost.DependencyResolverは正しいことです。SlowCallbackExceptionすべてのコールバックで(まだ)何もしていないため、まだ説明がありません。

0 投票する
1 に答える
268 参照

nservicebus - DryIoc または LightInject を使用した NServiceBus/MassTransit IContainer の実装

.Net Web API 2+ ソリューションのほとんどで、DryIoc と LightInject を使用していました。新しいアーキテクチャを使用する場合、次の ESB 実装には NServiceBus または MassTransit を使用したいと考えています。ただし、DryIoc または LightInject を使用して NServiceBus/MassTransit IContainer を実装するのに役立つコード リファレンスは見つかりませんでした。私の会社からの要件は、上記の両方からのみ選択することであるため、他の IoC は私にとってオプションではありません。コミュニティからの助けに感謝します。

0 投票する
2 に答える
396 参照

dependency-injection - 依存性注入 - ninject di を lightinject di に変換します

次の Ninject DI を LightInject DI に相当するものに変換するにはどうすればよいですか? 正しい構文にたどり着くのに問題があります。

元の質問では、これを含めませんでしたが、これ (この投稿へのコメントとして投稿されたもの) は、動作させようとした動作しないコードでした:

表示されたエラー メッセージ (スタック トレースなし) は次のとおりです。

例外の詳細: System.InvalidOperationException: 未解決の依存関係 [ターゲット タイプ: BrockAllen.MembershipReboot.Ef.DefaultUserAccountRepository]、[パラメーター: ctx(BrockAllen.MembershipReboot.Ef.DefaultMembershipRebootDatabase)]、[要求された依存関係: ServiceType:BrockAllen.MembershipReboot.Ef.DefaultMembershipRebootDatabase 、 サービス名:]

ソース エラー:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

*誰かがスタック トレースも見たい場合は - * 質問してください。この質問への返信に投稿します。

DefaultMembershipRebootDatabase のコンストラクター (サンプル プロジェクトのように、私のプロジェクトは nuget を介して提供された dll を使用し、コンストラクターは使用できませんでしたが、どちらの場合も同じである可能性が高いと確信しています (方法を見てそれは同じソースから来ています...)は:

これは、DefaultUserAccountRepository のコンストラクターです (前述のサンプル プロジェクトと同じ)。

そして、これは私のプロジェクトのコントローラーです:

AuthenticationService のコンストラクタは次のとおりです。

0 投票する
0 に答える
211 参照

c# - 現在のスレッド カルチャに基づいてインスタンスを取得する方法

セットアップ:

LightinjectComposition.cs

IdentityLocator は、次の 2 つのメソッドを持つ同じクラスのインスタンスを取得します。

  • Get(): Thread.CurrentThread.CurrentCulture に基づいて内部クラスのインスタンスを取得します。
  • Get (CultureInfo): CultureInfo に基づいて内部クラスのインスタンスを取得します。

2 つのプロジェクトがあります。1 つは API (Api と呼ばれます) 用で、もう 1 つは DI コンテナー構成 (Dependency と呼ばれ、他のプロジェクト (NHibernate マップ、サービスなど) への参照を含み、API によって参照されます) 用です。Dependency というプロジェクトでは、LightinjectComposition.cs が存在する場所です。

問題は、NancyFX Bootstrapper では、リクエストで受け取った値に基づいて現在のカルチャが設定されますが、インスタンスが解決された後にスレッドのカルチャが変更されないことです。

現在のカルチャを使用してインスタンスを取得する方法はありますか、または (IoC パターンに関して) 間違っていますか?

NancyFX Bootstrapper では、カルチャを次のように設定しました。

IIdentity の代わりに、IdentityLocator のインスタンスを依存クラスに渡す必要があるのでしょうか。

読んでくれてありがとう!

0 投票する
0 に答える
820 参照

c# - ASP.NET MVC: Lightinject を使用して、このオブジェクトにパラメーターなしのコンストラクターが定義されていません

を使い始めましLightInjectたが、No parameterless constructor defined for this objectエラーが発生しました。以下のようなコード、

Global.asax.cs:

コントローラ:

誰でも私を助けることができますか?

スタックトレース:

[MissingMethodException: このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +113
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232 System.Activator.CreateInstance(型型, Boolean nonPublic) +83 System.Activator.CreateInstance(型型) +66 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext、タイプ controllerType) +110

[InvalidOperationException: タイプ 'TestTools.Controllers.HomeController' のコントローラーを作成しようとしたときにエラーが発生しました。コントローラーにパラメーターのないパブリック コンストラクターがあることを確認してください。]
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +247
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
+438 Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +226
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext、IController& コントローラー、IControllerFactory& ファクトリー) +326 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext、AsyncCallback コールバック、オブジェクト状態) +157
System.Web.Mvc.MvcHandler. BeginProcessRequest(HttpContext httpContext、AsyncCallback コールバック、オブジェクト状態) +88
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext コンテキスト、AsyncCallback cb、オブジェクト extraData) +50
System.Web.CallHandlerExecutionStep.System.Web。 HttpApplication.IExecutionStep.Execute() +301 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

0 投票する
0 に答える
344 参照

c# - LightInject を使用してフィルターのプロパティ インジェクションを有効にするにはどうすればよいですか?

認証ソースに挿入したい認証フィルターがあります。私はライトインジェクトを使用しており、フィルターのプロパティの上EnableAnnotatedPropertyInjection()にあるコンテナーで有効にし、プロパティのタイプを登録して、ソリューションの他のコントローラーに注入しています。LightInject でプロパティ インジェクションを実行するための要件は何ですか。[Inject]RegisterInstance<IMyAuth>()IAuthenticationFilter