StructureMapexception代码:202没有为PluginFamily定义的默认实例
我是StructureMap的新手。 我已下载并使用的是2.6.1.0版。 我一直收到以下错误:
StructureMapexception代码:202没有为PluginFamily Company.ProjectCore.Con.IConfiguration,Company.ProjectCore,Version = 1.0.0.0定义默认实例,Culture = neutral,PublicKeyToken = null
我的Global.asax.cs看起来像:
protected void Application_Start(object sender, EventArgs e) { var container = new Container(x => { x.For().Use(); x.For().Use(); x.For().Use(); x.For().Use(); x.For().Use(); }); container.AssertConfigurationIsValid(); }
我从ObjectFactory.Initialize更改为“new Container”进行调试。 当单步执行AssertConfigurationIsValid()方法时,缓存有效,但EmailService在以下行中的GetInstance方法失败:
[Pluggable("Default")] public class EmailService : IEmailService private readonly IConfiguration _configuration; public EmailService() { _configuration = ObjectFactory.GetInstance(); }
如果我删除IEmailService,IUserSession会抛出相同的202错误。
我应该在Application_Start或我的类文件中添加其他内容吗?
提前致谢…
通过使用ObjectFactory.Configure
替换ObjectFactory.Initialize
并在我的项目中添加程序集来解决此问题:
ObjectFactory.Configure(x => { x.Scan(scan => { scan.LookForRegistries(); scan.Assembly("MyAssembly"); scan.Assembly("MyAssembly"); }); });
我得到了相同的错误消息,但原因不同。 我有一个类Foo定义了两个构造函数,如下所示:
public class Foo : IFoo { private Bar _bar; public Foo() { _bar = new Bar(); } public Foo(Bar bar) { _bar = bar; } }
我的StructureMap配置是这样的:
For.Use();
我一直收到一条错误消息
202没有为Bar定义默认实例
问题是StructureMap试图使用带参数的构造函数构造一个Foo,而不是使用无参数的默认构造函数。 我使用如何使用StructureMap通过代码定义默认构造函数中的答案解决了它? 像这样:
For.Use(() => new Foo());
IConfiguration具体类的引导位置在哪里?
即:
x.For().Use();
我看到了同样的错误。 在我的例子中,我在实现名称中输入了一个拼写错误,因此接口和实现名称不匹配。
public class FooTypo : IFoo
我应该在哪里:
public class Foo : IFoo
要寻找的另一件事是确保您注入的依赖项(类)是公共的 。 如果该类是内部的,则可能导致此问题。
当我收到这个错误时,那是因为我忘记将我的class级标记为public
。 那很简单。
当我使用带有NCrunch的Visual Studio 2015时,我也遇到了这个问题。 您所要做的就是在NCrunch下的配置菜单项中将选项切换为true 。 切换初始化为配置对我不起作用。
该选项位于“构建设置”下,名为“ 将引用的程序集复制到工作区 ”
上述就是C#学习教程:StructureMapexception代码:202没有为PluginFamily定义的默认实例分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962085.html