在Autofac中,瞬态(Transient)生命周期范围表示每次解析时都会创建一个新的实例。下面是一个示例代码,说明如何在Autofac中注册和解析瞬态类。
首先,需要安装Autofac的NuGet包。可以在Visual Studio的NuGet包管理器控制台中运行以下命令来安装Autofac:
Install-Package Autofac
接下来,假设有一个名为MyClass
的瞬态类,可以按照以下方式进行注册和解析:
using Autofac;
public class MyClass
{
public MyClass()
{
Console.WriteLine("MyClass instance created");
}
public void DoSomething()
{
Console.WriteLine("Doing something");
}
}
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
// 注册瞬态类
builder.RegisterType().AsSelf().InstancePerDependency();
var container = builder.Build();
// 解析瞬态类
using (var scope = container.BeginLifetimeScope())
{
var myClass1 = scope.Resolve();
myClass1.DoSomething();
var myClass2 = scope.Resolve();
myClass2.DoSomething();
}
Console.ReadLine();
}
}
在上面的示例中,通过调用InstancePerDependency()
方法,将MyClass
类注册为瞬态类。然后,在使用Autofac的容器解析实例时,每次都会创建一个新的MyClass
实例。
输出结果将会是:
MyClass instance created
Doing something
MyClass instance created
Doing something
可以看到,每次解析瞬态类时,都会创建一个新的实例。