2015-06-25 54 views
0

我有一个相当古老的项目,需要一些工作做就可以了,我已经在的NuGet运行更新包,现在得到我TypeRegistry以下SetAllProperties方法structuremap丢失的注册表

名称“SetAllProperties”在当前范围内不存在

的TypeRegistry如下

public class TypeRegistry : Registry 
    { 
    public TypeRegistry() 
     { 
     For<ILogger>().Singleton().Use<Log4NetLogger>(); 
     this.SetAllProperties(p => p.OfType<ILogger>()); 
     } 
    } 

谁能解释为什么是这样的情况下,并点我的任何事情可以帮助我解决这个问题,请。

+0

围绕 “当前范围”。如果作用域包含另一个名为“Registry”的接口或类,那么你将得到这个编译错误。尝试输入全名,而不是StructureMap.Configuration.DSL.Registry。 –

回答

0

我也遇到了这个问题。我认为这种方法在新版本中可能已被弃用。我能够使用注册表类的Policies属性完成setter注入。

public class TypeRegistry : Registry 
{ 
    public TypeRegistry() 
    { 
     For<ILogger>().Singleton().Use<Log4NetLogger>(); 
     Policies.FillAllPropertiesOfType<ILogger>().Use<Log4NetLogger>(); 
    } 
} 

编辑:

刚刚发现政策上的SetAllProperties方法为好。我相信任何一个人都会注入房产。