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 实例。

相关内容

热门资讯

第四分钟实锤!智星德州菠萝开挂... 第四分钟实锤!智星德州菠萝开挂(手机德州)好像是真的有挂(详细辅助爆料教程)1、玩家可以在智星德州菠...
第4分钟实锤!德州ai辅助(德... 第4分钟实锤!德州ai辅助(德州nzt)都是有挂(详细辅助技巧教程)1、完成德州ai辅助透视辅助安装...
第6分钟实锤!德州AI智能辅助... 第6分钟实锤!德州AI智能辅助机器人(德扑)竟然有挂(详细辅助玩家教程);暗藏猫腻,小编详细说明德州...
第六分钟实锤!智星德州菠萝开挂... 第六分钟实锤!智星德州菠萝开挂(德扑ai)确实是有挂(详细辅助2025新版);1)智星德州菠萝开挂辅...
6分钟实锤!德扑之星ai代打(... 6分钟实锤!德扑之星ai代打(来玩德州)好像存在有挂(详细辅助详细教程)暗藏猫腻,小编详细说明德扑之...
第一分钟实锤!德扑ai智能(云... 第一分钟实锤!德扑ai智能(云扑克德州)切实是有挂(详细辅助实用技巧)所有人都在同一条线上,像星星一...
第6分钟实锤!德扑之星有作弊(... 第6分钟实锤!德扑之星有作弊(德州app)其实存在有挂(详细辅助技巧教程);1)德扑之星有作弊辅助挂...
第一分钟实锤!德州之星外挂(德... 第一分钟实锤!德州之星外挂(德州俱乐部)都是是有挂(详细辅助规律教程)1、点击下载安装,德州之星外挂...
第七分钟实锤!德扑之星作弊(德... 第七分钟实锤!德扑之星作弊(德州之星)一直存在有挂(详细辅助技巧教程)1、游戏颠覆性的策略玩法,独创...
六分钟实锤!德州微扑克辅助(n... 六分钟实锤!德州微扑克辅助(nzt德州)真是真的是有挂(详细辅助必备教程)1、完成德州微扑克辅助的残...