Я пытаюсь построить свою собственную инверсию контейнера управления. Прямо сейчас я сохраняю объекты с их типами в словаре и разрешаю ссылку, когда их просят. Но я хочу сделать возможным разрешение ссылки или нового экземпляра. Я могу создать новый экземпляр с помощью класса Activator. Но что, если конструктор объекта для разрешения принимает 1, 2 или какие-либо параметры?
Например, я хочу сказать что-то вроде:
Container.register<IFoo>(new Foo(Proxy));
Container.register<IBar>(new Boo(Proxy, DataThing));
и разрешите как
IFoo MyFoo = Resolver.resolve<IFoo>();
IBar MyBar = Resolver.resolve<IBar>();
, где MyFoo создается с заданным параметром Proxy и MyBar с Proxy и DataThing .
Что должен решить , чтобы это произошло?