public void CanHaveSameTasqRAndSameObjectInScope() { using (var serviceProvider = services.BuildServiceProvider()) { ITasqR tasqR1 = null; TrackMeInScope trackMe1 = null; ITasqR tasqR2 = null; TrackMeInScope trackMe2 = null; using (var scope = serviceProvider.CreateScope()) { var scopeSvc = scope.ServiceProvider; tasqR1 = scopeSvc.GetService <ITasqR>(); trackMe1 = scopeSvc.GetService <TrackMeInScope>(); var cmd = new DINestedCmd1(); var res = tasqR1.Run(cmd); Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TasqR)}"]); Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TasqR)}"]); Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TasqR)}"]); Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TrackMe)}"]); Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TrackMe)}"]); Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TrackMe)}"]); } using (var scope = serviceProvider.CreateScope()) { var scopeSvc = scope.ServiceProvider; tasqR2 = scopeSvc.GetService <ITasqR>(); trackMe2 = scopeSvc.GetService <TrackMeInScope>(); var cmd = new DINestedCmd1(); var res = tasqR2.Run(cmd); Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TasqR)}"]); Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TasqR)}"]); Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TasqR)}"]); Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TrackMe)}"]); Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TrackMe)}"]); Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TrackMe)}"]); } Assert.AreNotEqual(tasqR1.ID, tasqR2.ID); Assert.AreNotEqual(trackMe1.ID, trackMe2.ID); } }
public override Dictionary <string, Guid> Run(DINestedCmd1 request) { Dictionary <string, Guid> retVal = new Dictionary <string, Guid>(); var data = p_TasqR.Run(new DINestedCmd2()); retVal[$"{nameof(DINestedCmd1Handler)}_{nameof(p_TasqR)}"] = p_TasqR.ID; retVal[$"{nameof(DINestedCmd1Handler)}_{nameof(p_TrackMe)}"] = p_TrackMe.ID; foreach (var key in data.Keys) { retVal[key] = data[key]; } return(retVal); }