Мне нужно в некоторых местах взять коллекцию данного типа и создать новый экземпляр класса с этим типом. Новый класс уже принимает аргумент типа:
public class Foo<T>
{
public List<T> MyList { get; set; }
public Foo<T>(List<T> list)
{
this.MyList = list;
}
}
Первоначально я думал, что для этого нужно настроить фабрику, но потом я подумал, что он может так же легко войти в модуль Autofac, как и фабрика Func, поэтому я попробовал следующее:
builder.Register<Func<List<T>, Foo<T>>>(x => list => new Foo<T>(list));
Я получаю ошибки, потому что он не знает, что делать с T
, я не могу заставить свой модуль принимать аргумент типа. Есть ли способ заставить эту регистрацию работать или я должен просто создать класс FooFactory<T>
и покончить с этим?