問題タブ [auto-registration]
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.
inversion-of-control - Castle Windsor で自動登録を取得する方法
私は最近、XML 構成を使用した自動登録に関するAyende のブログ記事を読みました。彼がしていることを正確にやりたいのですが、彼のコードスニペットはうまくいきません。Register メソッドがコンテナー オブジェクトに存在しません。
彼のコードは次のとおりです。
欠落している DLL リファレンスはありますか? Register() は拡張メソッドですか? 適切な名前空間が参照されていませんか? Castle Docs を見ましたが、解決策が見つからないようです。
castle-windsor - 2つの異なるアセンブリからのウィンザー城の自動登録?
現在、上記のコードは、インターフェイスも同じアセンブリにある場合は正常に機能しますが、IUserRepository が別のアセンブリにある場合は失敗します。
2 つの異なるアセンブリからの自動登録は可能ですか? ここで何か不足していますか?
c# - Castle Windsor:実装アセンブリを見つけて使用しました
実行ディレクトリ内のアセンブリからインターフェイス実装を取得するようにcastleに指示するにはどうすればよいですか。
例えば
CastleにILogの実装を見つけるように指示し、実行ディレクトリのアセンブリにlog4netをドロップすると、それを選択して使用する必要があります。明日、log4netをNlogに変更することにした場合、ログにNlogを取得する必要があります(どちらも明らかにILogを実装する必要があります)
castle-windsor - 自動登録された Castle コンポーネントに依存関係を追加できますか?
私は通常 StructureMap を使用しますが、現在のプロジェクトでは Castle Windsor (2.1) を使用しています。タイプとインターフェースを自動登録するコードをいくつか見つけました。
_container.Register(AllTypes.Pick().FromAssembly(GetType().Assembly).WithService.FirstInterface());
ただし、文字列の依存関係をタイプの 1 つに追加したいと思います。次のような規則なしでこれを行うことができます。
var registration = Component.For() .ImplementedBy().DependsOn(new[] { Property.ForKey("someString").Eq("blahblah") });
_container.Register(registration);
自動登録されたタイプでこれを行う方法はありますか?
repository-pattern - デコレータ パターンの StructureMap RegistrationConvention
私はデコレータパターンを使用して、リポジトリのキャッシュを実装しています。
Cached リポジトリは要求されたオブジェクトのキャッシュをチェックし、存在しない場合は FooRepository を呼び出して取得および保存します。現在、次の方法を使用して、これらのタイプを StructureMap に登録しています。
これは問題なく機能しますが、キャッシュされたリポジトリの数が増えるにつれて、それぞれを個別に登録するのは扱いにくくなり、エラーが発生しやすくなります。共通の規則があるので、カスタムの IRegistrationConvention を使用してアセンブリをスキャンしようとしていますが、FooRepository を関数内の CachedFooRepository のコンストラクターに渡す方法がわかりませんvoid Process(Type type, Registry registry)
。
次のようなことをする例を見つけました:
また
しかし、どちらの方法でも を連鎖させることはできません.Ctor
。私は何が欠けていますか?何か案は?
c# - Unity.AutoRegistration が自動登録しない
Unity.AutoRegistrationを使用して、インターフェイスを実装に自動配線しようとしています。私の構成は次のようになります。
しかし、それは機能していません:(マッピングが設定されていないことを明確に意味するこのエラーが表示されます:
現在のタイプ Blah.IFoo はインターフェイスであり、構築できません。タイプマッピングがありませんか?
構成コードの何が問題になっていますか? ありがとう
c# - IEnumerable<> でマーカー インターフェイスを使用しようとすると失敗する
Unity を使用して、自分のアプリで Orchard CMS からいくつかのものを模倣しようとしています..
さて、私がやろうとしていることはこれです...
IDependency というマーカー インターフェイスがあるとします。
次に、これにぶら下がっているいくつかのインターフェイスがあります...
そして、いくつかのクラスもあります...
私がこれまでに持っているもの..
NicksSecondController への IEnumerable の注入に失敗しています...何かアイデアはありますか??
乾杯、ニック
.net - Unity.AutoRegistration - 同じ名前のインターフェイスとタイプのみを登録します
Unity.AutoRegistrationは、タイプ名がインターフェイス名と一致する場合に正常に機能します (たとえば、TClass
and ITClass
. インターフェイス名にプレフィックス「T」を付けないようにしたいのですが、一致IClass
する必要があります。IClass
TClass
しかし、インターフェイスの名前を変更すると、自動登録が失敗します。タイプ/インターフェース名を一致させる必要がありますか、それとも私のニーズを達成する方法はありますか?
asp.net-mvc - オートマッパー構成の自動検出
MVCでコントローラーを作成する場合、追加の登録を行う必要はありません。エリアの追加についても同じことが言えます。global.asaxにAreaRegistration.RegisterAllAreas()呼び出しがある限り、追加の設定は必要ありません。
AutoMapperでは、ある種のCreateMap<TSource, TDestination>
呼び出しを使用してマッピングを登録する必要があります。これらは、staticを使用して明示的に行うMapper.CreateMap
か、クラスから派生しAutoMapper.Profile
、メソッドをオーバーライドして、そこからConfigure
呼び出すことで実行できCreateMap
ます。
Profile
から拡張するクラスのMVCスキャンのように、から拡張するクラスのアセンブリをスキャンできるはずだと私には思えますController
。このようなメカニズムでは、Profile
?から派生したクラスを作成するだけでマッピングを作成できるのではないでしょうか。そのようなライブラリツールは存在しますか、それともオートマッパーに組み込まれているものがありますか?
dependency-injection - Unity への登録
私は Autofac の使用に慣れており、1 行のコードで autofac を使用すると、アセンブリ内のすべてのインターフェイスを登録して、そのインターフェイスを実装するクラスに解決されるようにすることができます。
Unity では、すべてのインターフェイスを手動で登録する必要があるようです。すべてをグローバルに登録するより簡単な方法があるかどうか疑問に思っています。ライフサイクルの違いにより、個々のエントリが作成されます。
ありがとう