Autofac中的IoC:如何在运行时进行实例化?
创始人
2024-11-12 12:30:16
0

使用Autofac中的解析器可以在需要时进行运行时实例化。以下是示例代码:

using System;
using Autofac;

public interface IMyInterface
{
    void DoSomething();
}

public class MyClass : IMyInterface
{
    public void DoSomething()
    {
        Console.WriteLine("Something was done.");
    }
}

public class MyConsumer
{
    private readonly Func _myInterfaceFactory;

    public MyConsumer(Func myInterfaceFactory)
    {
        _myInterfaceFactory = myInterfaceFactory;
    }

    public void DoSomething()
    {
        var myInterface = _myInterfaceFactory();
        myInterface.DoSomething();
    }
}

public class Program
{
    public static void Main()
    {
        var builder = new ContainerBuilder();
        builder.RegisterType().As();
        builder.RegisterType();

        var container = builder.Build();
        var myConsumer = container.Resolve();

        myConsumer.DoSomething();
    }
}

上述示例代码使用了Func解析器。在MyConsumer中声明一个Func类型的字段,这个字段将在构造函数中被解析。

然后通过 container.Resolve() 方法获得 MyConsumer 类型的实例,这个实例的构造函数依赖于一个 Func 类型的参数。解析器会自动为这个构造函数传递一个可用的实例。

然后,在 DoSomething 方法中调用 _myInterfaceFactory() 将会得到一个新的 IMyInterface 实例。

相关内容

热门资讯

透视透视!wepoker辅助器... 透视透视!wepoker辅助器安装包,wepoker破解器(透视)一直真的有挂;一、wepoker辅...
透视真的!德扑圈透视(透视)辅... 透视真的!德扑圈透视(透视)辅助软件(本来有挂)1、德扑圈透视透视辅助简单,德扑圈透视软件透明挂操作...
透视了解!德普之星透视辅助软件... 透视了解!德普之星透视辅助软件激活码(透视)辅助软件(好像真的是有挂)1、每一步都需要思考,不同水平...
透视代打!wepoker辅助插... 透视代打!wepoker辅助插件功能,we-poker靠谱吗(透视)总是存在有挂1、完成wepoke...
透视数据!德普之星怎么开辅助(... 透视数据!德普之星怎么开辅助(透视)透视软件免费入口官网(果然是真的有挂);1、玩家可以在德普之星怎...
透视脚本!淘宝买wepoker... 透视脚本!淘宝买wepoker透视有用吗,wepokerplus透视脚本免费(透视)确实真的有挂1、...
透视辅助!德普之星辅助器(透视... 透视辅助!德普之星辅助器(透视)私人局辅助器(总是真的有挂)运德普之星辅助器辅助工具,进入游戏界面。...
透视数据!破解辅助插件wepo... 透视数据!破解辅助插件wepoker,wepoker模拟器哪个(透视)切实是有挂;1、很好的工具软件...
透视讲解!德普辅助软件(透视)... 透视讲解!德普辅助软件(透视)透视辅助插件(真是是真的有挂)进入游戏-大厅左侧-新手福利-激活码辅助...
透视辅助!wepoker底牌透... 透视辅助!wepoker底牌透视,wepoker私人局透视方法(透视)原来有挂;1、完成wepoke...