SCSFカスタム依存性注入
-
12-09-2019 - |
質問
私は/にはいくつかのカスタムプロパティを含めるように、オブジェクトビルダによって行わ依存性注入を模倣強化したいと思います。
標準的な方法がある。
mySmartPart.csで
[CreateNew] MyPresenter ABC { .... }
[ServiceDependency] myServiceというXYZ { ... }
のinclude [MyCustomReferenceAttribute] CustomerObject表MyCustomer { .... }
など。
このはsmartPartが作成された後、明らかに行うことができますが、私は推測している(期待して?)私は、コードEveryplaceを繰り返すのではなく、ニードフルを行うにはいくつかのコードの拡張子をフックすることができますいくつかの場所があります!!!
解決
ユニティ/ ObjectBuilderは、その戦略チェーンと呼ばChain of Responsibilityパターンを使用しています。あなたはユニティ/ ObjectBuilderは、そのオブジェクトの構築を行う方法のうち、いくつかのカスタマイズを取得するには、このチェーンでは、独自のステップをプラグインすることができます。
ます。http:// MSDNここでユニティの設計についての詳細です。 microsoft.com/en-us/library/cc440939.aspxする
私の腸はあなたが本当にユニティの大部分を置き換えるために欠けていると述べています。私がこの戦略チェーンの大部分を腸およびカスタマイズされたバージョンでそれを置き換えるためにあなたを必要と思います。
あなたが達成しようとしている内容に応じて、それは単に<のhref = "http://unity.codeplex.com/SourceControl/changeset/view/39621から自分の属性を継承しているの可能性のです#427223" のrel = "nofollowをnoreferrer"> DependencyResolutionAttribute とちょうどの追加のStrategyChainへの戦略。ここでは、デフォルトの戦略が設定されている方法です(ともユニティでの使用における戦略の完全なリスト:<のhref =「http://unity.codeplex.com/SourceControl/changeset/view/39621#427281」のrel = "nofollowをnoreferrer 「> http://unity.codeplex.com/SourceControl/changeset/view/39621#427281 の
私は、これは、多くの情報ですけど、うまくいけば、これはあなたにいくつかの方向性を与えます。