0

OK、SM に登録している型にプロパティを設定しようとしています。

コンポーネントの 1 つにあるレジストリのコードを次に示します。このレジストリは、コンソール アプリからの構成中に追加されます。インスタンス AutoMandatoryEndorsementAggregator オブジェクトの EndorsementSpecs プロパティにアクセスしようとすると、202 が返されます。興味深いのは、コンソール アプリから GetAllInstances>() を呼び出すことができ、問題なく解決されることです。202 を引き起こしている OnCreation 内からこのコードにアクセスすることについて何かありますか? WhatDoIHave() で期待するすべてを確認できます。同じ結果で TypeInterceptor も試しました。

//register all open generics
cfg.ConnectImplementationsToTypesClosing(typeof
(MandatoryEndorsementSpecBase<>));

ForSingletonOf<IMandatoryEndorsementAggregator<AutoPolicy>>()
                    .Use<AutoMandatoryEndorsementAggregator>()
                    .OnCreation((context, x) =>
                    {

                        var specs =
context.GetAllInstances<MandatoryEndorsementSpecBase<AutoPolicy>>();
                        x.EndorsementSpecs = specs;
                    })
                    ; 
4

1 に答える 1

0

本当の質問をそらして申し訳ありませんが、MandatoryEndorsementSpecBase のすべてのインスタンスを AutoMandatoryEndorsementAggregatory に挿入しようとしているだけですか? もしそうなら、おそらくそれをコンストラクターのパラメーターにするだけで済むので、それらはすべて自動的に注入されます。

public AutoMandatoryEndorsementAggregatory(MandatoryEndorsementSpecBase<AutoPolicy>[] endorsementSpecs){
  EndorsementSpecs = endorsementSpecs;
}
于 2010-01-29T22:09:22.703 に答える