ฉันใช้ Unity ของ Microsoft สำหรับการฉีดพึ่งพาและฉันต้องการทำสิ่งนี้:
IDataContext context = _unityContainer.Resolve<IDataContext>();
var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context
var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context
IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance
var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2);
RepositoryA
และRepositoryB
ทั้งสองมีตัวสร้างที่รับIDataContext
พารามิเตอร์และฉันต้องการให้ Unity เริ่มต้นที่เก็บด้วยบริบทที่ฉันส่งผ่าน โปรดทราบIDataContext
ว่าไม่ได้ลงทะเบียนกับ Unity (ฉันไม่ต้องการ 3 อินสแตนซ์IDataContext
)