0

オブジェクトビルダーによって行われる依存性注入を強化/模倣して、いくつかのカスタムプロパティを含めたい

標準的な方法は

mySmartPart.csで

[CreateNew] MyPresenter ABC {....}

[ServiceDependency] myService XYZ {...}

インクルード[MyCustomReferenceAttribute]CustomerObjectMyCustomer {....}

これはsmartPartが作成された後に明らかに行うことができますが、コードをどこでも繰り返す代わりに、必要なコード拡張をフックできる場所があると思います(期待していますか?)。

4

1 に答える 1

1

Unity / ObjectBuilderは、ストラテジーチェーンと呼ばれる責任の連鎖パターンを使用します。このチェーンに独自のステップをプラグインして、Unity/ObjectBuilderがオブジェクト構築を行う方法をカスタマイズすることができます。

Unityの設計の詳細については、次のとおりです。http: //msdn.microsoft.com/en-us/library/cc440939.aspx

私の腸は、あなたが本当にUnityの大部分を交換したいと言っています。これには、この戦略チェーンの大部分を消化し、カスタマイズされたバージョンに置き換える必要があると思います。

達成しようとしていることに応じて、 DependencyResolutionAttributeから属性を継承し、StrategyChainに戦略を追加するだけでよい場合があります。デフォルトのストラテジーの構成方法は次のとおりです(Unityで使用されているストラテジーの完全なリスト:http://unity.codeplex.com/SourceControl/changeset/view/39621#427281

これは多くの情報であることを私は知っていますが、うまくいけば、これはあなたにいくつかの方向性を与えるでしょう。

于 2009-12-04T06:32:44.617 に答える