结构图方法,scan.WithDefaultConventions();在 structuremap.MVC 5 中,假设约定 IMyClassName , MyClassName 用于依赖注入(inject)。如果您只有自己创建的类,这没关系。
开箱即用的 ASP.NET MVC 5 应用程序,约定 IMyClassName , MyClassName 不会与用户标识一起退出。如何配置结构图以忽略 ASP.NET Framework 接口(interface)/类?
最佳答案
StructureMap.MVC5 自动使用约定的 IMyClass 和 MyClass 来进行 DI 解析。从 Nuget 添加 StructureMap.MVC5 后不需要其他配置。它只是工作。然而,ASP.NET Identity 不遵循 IMyClass 和 MyClass 的这种约定。
您将看到此异常“”没有注册默认实例,并且无法自动确定类型“IUserstore”,因为结构映射无法解析为需要实例
解决方法是请求 StructureMap.MVC5 通过在帐户 Controller 中添加 StructureMap 的 DefaultContructor 属性来使用默认构造函数,如下所示。
public class AccountController : Controller
{
private ApplicationSignInManager _signInManager;
private ApplicationUserManager _userManager;
[DefaultConstructor] //This is the attribute you need to add on the constructor
public AccountController()
{
}
// Other implementations here..........
关于asp.net-mvc - 如何在 ASP.NET MVC5 中配置 structuremap.MVC 5 以忽略框架接口(interface)/类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578776/