gpt4 book ai didi

class - IOC 使用 AutoFac 进行内部类

转载 作者:行者123 更新时间:2023-12-03 21:36:13 25 4
gpt4 key购买 nike

我有一个内部类,它对服务工厂是内部可见的。它还继承了一个公共(public)接口(interface)。

当我想在我的应用程序中使用它的功能时,我正在为接口(interface)声明对象并通过服务工厂为特定类实例化它。

现在我们正在使用 MVC,我想在我的一个 Controller 中为这个类创建 IOC。
这个类是内部的,我不能在 global.ascx 中注册它

比如我在写的时候
builder.RegisterType().As().InstancePerHttpRequest() ;
CommonSvc 是内部的,它会抛出编译时错误,因为 Services.CommonSvc' 由于其保护级别而无法访问

请指教

最佳答案

您的选择:

  • 制作 CommonSvc公众
  • 使用 InternalsVisibleToAttribute 注释您的程序集使内部类型对调用程序集可见。
  • 而不是注册CommonSvc直接使用 RegisterAssemblyTypes()按照惯例进行注册。例如:

  •     builder.RegisterAssemblyTypes(typeof(SomeOtherTypeInTheSameAssembly).Assembly)
    .Where(t => typeof(SomeInterface).IsAssignableFrom(t))
    .AsImplementedInterfaces();

    关于class - IOC 使用 AutoFac 进行内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216156/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com