asp.net-mvc - 如何在 ASP.NET MVC5 中配置 structuremap.MVC 5 以忽略框架接口(interface)/类实例

标签 asp.net-mvc dependency-injection ioc-container structuremap structuremap3

结构图方法,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/

相关文章:

c# - 使用 Html.BeginForm 将内容放在结束 </form> 标记之后

asp.net-mvc - 从ASP.Net Webforms反模式毕业

.net - IoC - Unity,RegisterInstance 如何工作,我说得对吗?

c# - 指定要使用的 Unity IoC 容器的构造函数

c# - 在 ASP.NET Core 中获取 Controller 详细信息

asp.net-mvc - ASP.NET MVC Html.RadioButton 异常

asp.net-mvc - 尝试编写一些 razor 代码来在 Razor View 中定义 CSS 类,非常简单,但很困惑

jsf - 如何注入(inject)@FacesConverter?

c# - 在基础设施层使用依赖注入(inject)

webforms - 使用 Web 表单和 DI 对象实例化的 MVP 模式