這裏我現在有Unity應用程序塊,如何將參數傳遞給Injection Factory?
Container.RegisterType<IUserManager, UserManagerMock>();
Container.RegisterType<IUser, UserMock>(
new InjectionFactory(
(c) => c.Resolve<IUserManager>().GetUser("John")));
,並得到它
Container.Resolve<IProfile>();
我想通過一個名稱作爲參數傳遞給工廠,這樣我就能夠解決用戶對象與名稱; 類似這樣的:
Container.Resolve<IProfile>("Jonh");
如何更改這種情況下的類型註冊?
就我個人而言,我不會嘗試通過服務位置檢索IUser/IProfile。只需通過服務位置檢索IUserManager,然後在代碼中調用GetUser(「John」)即可。 – 2010-12-03 13:19:28
我同意約翰。如果可能,請嘗試使用依賴注入,而不是服務位置。這樣可以讓您的代碼免受調用容器的影響,並且在您的應用程序中調用該容器的單個(或至多幾個)地方。 – Steven 2010-12-04 15:25:51