我有一个收到通用类型的类:
RequestHandler<T>
现在我想基于泛型类型多次在Autofac中注册这个类。 像这样:
builder.RegisterType<RequestHandler<Request1>>().As<RequestHandler<T>>();
builder.RegisterType<RequestHandler<Request2>>().As<RequestHandler<T>>();
builder.RegisterType<RequestHandler<Request3>>().As<RequestHandler<T>>();
builder.RegisterType<RequestHandler<Request4>>().As<RequestHandler<T>>();
我知道语法不正确,但我希望你明白这一点。
这甚至可能吗?如果是这样的话?
答案 0 :(得分:1)
您可以使用RegisterGeneric
映射打开的泛型类型,如下所示:
builder.RegisterGeneric(typeof(RequestHandler<>)).As(typeof(RequestHandler<>));