問題タブ [dependency-resolver]
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.
dependencies - SBT: sbt プロジェクトのリゾルバをそれに依存するプロジェクトのリゾルバに追加する
私は SBT プロジェクトA
を で公開しています。../nexus-url/.../a
B
依存している別の SBT プロジェクトがありA
、それを取得するために、../nexus-url/.../a
リゾルバーのリストに追加します。プロジェクトB
はに公開されています../nexus-url/.../b
C
依存する別の SBT プロジェクトがあるB
ので、それを取得するために、../nexus-url/.../b
リゾルバーのリストに追加します。
ここでの問題は、 projectを見つけることができないため、 project を依存関係としてC
追加できないことです。をインポートするときに、のリゾルバーで依存関係を探すと想像していましたが、それは起こっていないようです。これを期待するのは間違っていましたか?B
A
B
B
はいの場合B
、公開されたパッケージに の依存情報を埋め込んで、A が喜んでそれをインポートできるようにする方法はありますか?
swift - Swinject: 任意のオブジェクトのインスタンスを生成します (未登録オブジェクト、ViewModel など)。
Swinject コンテナに登録されていないオブジェクトの新しいインスタンスを解決/作成することは可能ですか? Unity では、c# の依存性注入 (Microsoft から) がそれです。
一部のプロトコルに依存するviewModelクラスを解決したい。例: IFileManager をコンテナーに登録しました。
そして私viewModelはIFileManagerに依存しています
Swinject リゾルバーを使用して AwesomeViewModel の新しいインスタンスを作成したいのですが、すべての依存関係を init に追加したいのですが、うまくいきません。
そしてViewModelはnilです
c# - 複雑なアーキテクチャで解決する .NET アセンブリ
誰かがこの質問に答えてくれることを願っています。
このアーキテクチャのアプリケーションがあります:
ApiLibrary (クラス ライブラリ) UsedLibrary バージョン 2 (ApiLibrary によって参照されるクラス ライブラリ)
次に、My ApiLibrary にはサードパーティのプラグイン システムがあります。開発者は、ApiLibrary を参照し、「AbstractPlugin」という名前の抽象型を拡張するカスタム プラグインを作成できます。ユーザーがサブフォルダーを置くことができる特定のフォルダー (Plugins) があり、それ自体にプラグイン用に生成された dll が含まれています。
私の API には、これらのプラグインをロードするための専用のメソッドがあり、このフォルダー内のすべての dll ファイルをループし、「Assembly.LoadFile(currentDll)」を使用します。次に、アセンブリのすべての型をループし、AbstractPlugin から拡張された型を見つけようとします。見つかったこれらのタイプはすべて、API 内で使用できるプラグインです。
プラグインは、それらが配置されているフォルダーに ApiLibrary の出力を含めるべきではありません (開発者に指定された要件)。プラグイン関数を呼び出すときに API が効果的に解決されるようにするために、AppDomain.CurrentDomain.AssemblyResolve イベントを処理し、実行中のアセンブリを返します。ただし、他のライブラリの dll をフォルダーに含めることができます。
問題は、現在、実際に「UsedLibrary」を参照する必要があるプラグインがありますが、バージョン 1 であるということです。次に、ApiLibrary 内で、プラグインが読み込まれる前に UsedLibrary の関数が呼び出されると、バージョン 2 が読み込まれ、プラグインがバージョン 1 が必要なため、機能しません。さらに、プラグインが以前にロードされている場合、バージョン 1 がロードされ、API は v2 の関数を使用できません。
実際、UsedLibrary は API のメイン フォルダーに配置された管理されていないライブラリ自体を動的に読み込み、プラグインは独自のフォルダーから管理されていないライブラリを読み込む必要があるため、問題を単純化しました。
プラグインが v1 から関数を呼び出せるようにし、API が v2 から関数を呼び出せるようにするためのソリューションを誰かが持っているかどうか知りたいです (これらのアセンブリの名前を変更することはできません)。
どうもありがとうございました。
編集1:
プラグイン フォルダーごとに異なるアプリケーション ドメインに DLL を読み込もうとしましたが、何度も試行した後、最終的にアセンブリを取得できませんでした。この種のコードを使用して、アセンブリを異なるアプリドメインにロードするにはどうすればよいですか:
どうもありがとうございました。
編集2:
AppDomains 間で通信する方法をようやく理解し、アセンブリを読み込んでプラグインを見つけることができましたが、まだ問題があります。
プラグインは、PluginsManager オブジェクトを介して API (クラス ライブラリ) によって読み込まれます。
プラグインの取得に役立つ PluginLoader オブジェクトは、次のように記述されています。
通信を確実にするために、現在のドメインとプラグイン ドメインの間で受け渡すことができるすべてのオブジェクトは、MarshalByRefObject クラスを拡張する必要があることに気付きました (または、Serializable 属性を持っていますが、AppDomains 間で通信し、現在のドメインにオブジェクトをコピーしたくありません)。これで問題ありません。必要なすべてのオブジェクトが MarshalByRefObject 型を拡張していることを確認しました。
この API は、PluginsManager を呼び出してすべてのプラグインを読み込み、読み込まれたプラグインを反復処理するユーザー アプリケーション (別のビジュアル スタジオ プロジェクト) によって参照されます。
すべてのプラグインを正常にロードして反復できますが、AbstractPlugin タイプには、アプリケーションで処理する必要がある特定のイベントがあります。これらのイベントのハンドルを作成すると、SerializationException が発生します...
私のアプリケーションのプラグインコントローラーは次のとおりです。
そのため、PluginsController クラスは MarshalByRefObject クラスも拡張する必要があります。これは、イベントに追加されたメソッドがプロキシ経由で送信される必要があるためです。
API の複雑なアーキテクチャが原因で、他にも多くの問題があり、一部の機能が使用できません。現在のドメインにプラグインをロードすると、すべてが機能しますが、アセンブリのバージョン間で問題が発生する可能性があります。私は自分がやりたいことを実行できないと思っています...そのため、プラグインが読み込まれる前に API にすべての依存関係が読み込まれていることを確認するだけで、アセンブリが以前のものと互換性がない場合、プラグインが機能しない可能性がありますプラグインが使用するバージョン。
誰か他の提案があれば...
ありがとうございました。
xamarin - Xamarin.Forms DependencyService はすべてのプラットフォームに対応していません
ドキュメントでは、すべてのプラットフォームに実装が必要であることが明確に述べられています。
すべてのプラットフォーム プロジェクトで実装を提供する必要があります。Interface 実装が登録されていない場合、 は実行時にメソッド
DependencyService
を解決できません。Get<T>()
実装を提供していないため、アプリがクラッシュしました。しかし、そのプラットフォームの実装が必要ない場合はどうすればよいですか? このような体のないメソッドを提供しますか?
それにもかかわらず、実装を提供する必要がありますか?
それとも、DependencyService
ここで間違ったオプションを使用していますか?
angularjs - UI ルーターがコンポーネントベースの状態で機能しないことを解決する
背景:
私が取り組んでいるアプリでは、2 つの場所で使用されているコンポーネントがあります。ある場所では、マテリアル デザインbottomSheet
システムから呼び出されています。別の例では、ui-router 状態システムを介してコンポーネントを直接使用しています。
これが問題を引き起こしているセットアップです。適切なパッケージの依存関係がすべて設定されているステートメントを既に取得していangular.module
ます - 私はチームと一緒にこのアプリに何ヶ月も取り組んできましたが、問題は具体的には以下のコードであり、追加したばかりです。
routes.ts
awesomefeature.ts
問題: 「Awesome Feature」に直接移動しようとすると、HTML がレンダリングされないだけでなく、次のコンソール エラーが表示されます。
何らかの理由で、$stateProvider.state({resolve})
が my を適切に解決awesomeDefaults
して値を に注入していないようawesomeFeatureCtrl
です。
質問:
思った通りに動か
ないのはなぜresolve
ですか?
私の理解では、 UI Router Documentationresolve
に従って、オブジェクトは名前付きの各インデックスを取得し、その上にある関数を実行してから、ルート内のモノのコントローラーに解決します。明らかに私が何かを覚えていないか、誤解している。
c# - Castle Windsor で名前空間を一致させて自動登録する方法は?
これを書く前に多くの回答と記事をチェックしましたが、うまくいきませんでした。1 つの特定のインターフェースから派生したすべてのクラスを登録したいIInject
私はこのようなインターフェースを持っています:
IFoo を自動登録するには、次のように Ninject でそれを行うことができました。
しかし、ウィンザー城ではできませんでした。自動登録をトリガーするためだけに IInject インターフェイスが空のインターフェイスであることを知る必要がある場合:
ウィンザー城でこの MATCHING または CONTAINING パターンをどのように使用できますか?
ありがとう、