0

好的,我正在尝试在我向 SM 注册的类型上设置一个属性。

这是我的一个组件中注册表中的代码。此注册表是在从控制台应用程序配置期间添加的。当我尝试访问实例 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 回答