問題タブ [unity-container]
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.
c# - 依存性注入構成のテスト
依存性注入に Unity を使用しています。これは、すべての依存関係をモックアウトできるため、オブジェクトをテストするときに役立つようです。しかし、自分の構成が有効であることをどのようにテストすればよいのでしょうか?
たとえば、app.config で Unity 構成を変更すると、もちろん、プロジェクトは正常にビルドされます。現在、私のテストは私のオブジェクトのみをテストしているため、引き続き機能します。しかし、構成が壊れていないことをどのように確認できますか?
inversion-of-control - Unity Framework:同じインターフェイスから 2 つのクラスをインスタンス化する方法は?
私はそれを実装する2つのクラスを持つ1つのインターフェースを持っています.各クラスをロードする必要がありますが、ユニティには次のものがあります:
m_unityContainer.Resolve() // IGeneric インターフェイスはどこにありますか
私の設定は次のようになります:
何か案は?
ありがとう
c# - IUnityContainer をどのようにモックしますか?
Moq 3.0 を使用して IUnityContainer をモックしようとしています
BadImageFormatException が発生しますが、デバッグ時には発生しません。見た目からして、この問題に遭遇したのは私だけではありません。
そして、そのMoqの登録済みの問題
誰かが解決策を見つけた場合、私はただ興味があります...私が見つけた最も近いものは、Roy OsheroveによるRhinoMockを使用する素晴らしい解決策です
しかし、私はMoqが本当に好きです!したがって、Rhino Mock に切り替える必要はありませんが、必要に応じて切り替える必要があります。
前もって感謝します!
c# - 複合アプリケーション ライブラリの Unity コンテナーのコードはどこにありますか?
私は複合アプリケーションライブラリを使用していますが、たとえば次の行に出くわしました:
そこで、Resolve メソッドを構成するコードを見てみたいと思います。
そこで、Visual Studio で CompositeApplicationLibrary_Desktop.sln を開きます。
UnityBootstrapper.cs などのクラスは見つかりましたが、UnityContainer クラスのコードはどこにもありません。私はそれへの参照を次のように見つけます:
しかし、「UnityContainer()」を右クリックして「定義に移動」を選択すると、このクラスに関するメタデータだけが得られます。
UnityContainer クラスの Resolve メソッドのコードはどこで確認できますか?
unity-container - Unity の RegisterInstance<...> によって Unity が複数のインスタンスを返すのはなぜですか?
Unity のドキュメントには、Resolve<> が呼び出されるたびに特定のインスタンスが返されるようにインスタンスを登録する RegisterInstance<> メソッドについて記載されています。
ただし、次の例は、 Resolve<> が呼び出されるたびに、型の新しいインスタンスが返されることを示しています。
どうしてこれなの?
dependency-injection - Unityの自動インジェクションをインターフェイスインジェクトされたコンストラクターで機能させるにはどうすればよいですか?
Unityのドキュメントには次のように記載されています。
開発者がUnityコンテナのResolveメソッドを使用してインスタンス化するクラスに、他のクラスへの1つ以上の依存関係を定義するコンストラクターがある場合、Unityコンテナーは、コンストラクターのパラメーターで指定された依存オブジェクトインスタンスを自動的に作成します。
これは素晴らしいことですが、ほとんどの場合、物事を切り離しておくために、インジェクション用のクラスではなくインターフェイスを指定します。
では、クラスインジェクションの代わりにインターフェイスインジェクションを指定するクラスを.Resolve <>するときに、Unityの自動インジェクションをどのように利用できますか?
つまり、次のコードで、Customerコンストラクターを「 publicCustomer(ILoggerlogger) 」に変更したときにどのように機能させることができますか?
silverlight - Prism 2 for Silverlight with Unity - 'System.Threading.SynchronizationLockException'
Unity と Silverlight および Prism 2 を使用しています。ラップトップ (Vista 32 を実行) で、VS.NET 2008 SP1 の出力ウィンドウに次のエラーが表示されます。これは、Unity によって内部的にキャッチされていると思われます。
タイプ 'System.Threading.SynchronizationLockException' の初回例外が Microsoft.Practices.Unity で発生しました
私のデスクトップ マシン (Vista 64 を実行) で同じコードベースを使用していますが、同じエラーは表示されません。
アプリ (Prism 2 を使用) でいくつかのイベントが公開されており、サブスクライバーに通知されていないため、ラップトップに問題があることを最初に発見しました。デスクトップ マシンは Prism イベントでうまく機能しています。
何が間違っている可能性がありますか?マイケル
inversion-of-control - パブリック コンストラクターを使用せずに、外部で作成されたオブジェクト インスタンスを解決する
IoC (具体的には Unity) と組み合わせたアダプター パターンを使用して、プロパティがアダプティのプロパティを指すオブジェクトの新しいインスタンスを作成したいと思います (基本的に、アダプティをターゲット オブジェクトにマッピングします)。
例として、次のクラス構造があります。
問題は、アダプティーが私の管理下になく、パブリック コンストラクターがないため、アダプターを使用することです。したがって、Adapte は次のように作成されます。
実際のコードでは、上記のコードは外部で制御されたアセンブリで実行され、次のコードに渡されます。
コードを実行すると、次のようになります。
これは、解決された Adapter のインスタンスを myTestClass インスタンスの MyTarget プロパティに挿入する必要があることを意味します。Adapter のインスタンスは、外部で作成された Adaptee のインスタンスで作成されているはずです。
次のコード:
実際には次のようになります。
Adapter のインスタンスがまだ存在せず、プライベート コンストラクターがあるため、これは可能ではないようです。
これを達成するために傍受などを使用する必要がありますか?