结构图WhatDoIHave说我拥有它。 ObjectFactory说我没有

时间:2013-03-07 15:19:19

标签: mapping structure open-generics

Jeez louise,我正试图用SM修复一个瘟疫缠身的遗留应用程序,并遇到各种各样的陌生感。所以我为所有奇怪的问题道歉。

所以我有这段代码

var whatDoIHave = ObjectFactory.Container.WhatDoIHave();
var validator = ObjectFactory.GetInstance<IValidator<ProfileActivityElement>>();

我有什么这个

IValidator`1<ProfileActivityElement> (IValidator`1<ProfileActivityElement>)                                                                                                                                                                                                                                                                                                                                                                                                                                                          
Scoped as:  Transient
4b774bc1-b46e-4fc1-95f4-348bb3786dc8   
Configured Instance of HSTM.HLC.BusinessLogic.Validators.ProfileActivityElememntValidator, HSTM.HLC.BusinessLogic, Version=13.1.28.895, Culture=neutral, PublicKeyToken=0ecfe41405c30fb3              
                                                                                                                                       29c5ff3e-73bd-44bb-9fc8-5a81fa640499                                                                                                                                                Configured Instance of HSTM.HLC.BusinessLogic.Validators.ProfileActivityElememntValidator, HSTM.HLC.BusinessLogic, Version=13.1.28.895, Culture=neutral, PublicKeyToken=0ecfe41405c30fb3   

验证器会收到类似这样的错误

StructureMap Exception Code:  202
No Default Instance defined for PluginFamily     HSTM.HLC.BusinessLogic.IValidator`1[[HSTM.HLC.BusinessLogic.HCC.ProfileActivityElement,     HSTM.HLC.BusinessLogic, Version=13.1.28.895, Culture=neutral,     PublicKeyToken=0ecfe41405c30fb3]], HSTM.HLC.BusinessLogic, Version=13.1.28.895,     Culture=neutral, PublicKeyToken=0ecfe41405c30fb3

这是完整的错误,没有内部错误。也许我只是忽略了一些语法错误。 谢谢您的帮助, RAIF

1 个答案:

答案 0 :(得分:0)

所以这里的问题是我使用ConnectImplementationsToTypesClosing()来注册我的开放式泛型。奇怪的是,这在我拥有的其他一些应用程序中运行良好,但在这个应用程序中,如上所述是遗留和凌乱,它没有。事实上,它将开放的泛型注册为pluginLibraries,但它们不会在配置文件_instances中结束,所以当你要求它们时它们就不存在了。这就是为什么他们出现在我有什么,但不是在我要求他们的时候。

这位修正案是由着名的凯文M提供给我的,他的姓氏我已经忘记了。我实现了它,然后我的应用程序再次运行。

Kevin's Fix

谢谢Kevin