1.概要
泛型注入
2.代码
using Autofac;
using System;
namespace AutoFac泛型
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("AutoFac泛型");
Program p = new Program();
p.main();
Console.ReadKey();
}
private void main()
{
test1();
test2();
}
/// <summary>
/// 普通反射注册
/// </summary>
private void test1()
{
var builder = new ContainerBuilder();
builder.RegisterType<B<A1>>();
IContainer container = builder.Build();
B<A1> a = container.Resolve<B<A1>>();
int b = a.fun(1, 2);
Console.WriteLine(b);
}
/// <summary>
/// 以泛型的方式注册
/// </summary>
private void test2()
{
var builder = new ContainerBuilder();
builder.RegisterGeneric(typeof(B<>));
IContainer container = builder.Build();
B<A2> a = container.Resolve<B<A2>>();
int b = a.fun(1, 2);
Console.WriteLine(b);
}
interface IA
{
int add(int a, int b);
}
class A1 : IA
{
public int add(int a, int b)
{
return a + b;
}
}
class A2 : IA
{
public int add(int a, int b)
{
return a + b;
}
}
class B<T> where T : IA, new()
{
T t = new T();
public int fun(int a, int b)
{
return t.add(a, b);
}
}
}
}
3.运行结果
AutoFac泛型
3
3
本文介绍了如何在C#中使用AutoFac容器管理框架进行泛型注入,展示了两种注册方式:普通反射注册和泛型注册,以及如何通过接口约束实现依赖注入。
69

被折叠的 条评论
为什么被折叠?



