1
我已經設置了容器這樣我有團結與實例解析問題:
var token = new SecurityToken();
token.Token = "Test";
token.Value = "Test";
var passport = new PassportContext();
passport.Permissions = new SecurityPermissions { Add = true, Change = true, Inquiry = true, Delete = true };
_unityContainer = new UnityContainer();
_unityContainer.RegisterInstance<PassportContext>(passport, new ContainerControlledLifetimeManager());
_unityContainer.RegisterInstance<SecurityToken>(token, new ContainerControlledLifetimeManager());
_unityContainer.RegisterType<IWorksheetRepository, WorksheetRepository>();
PassportContext
和SecurityToken
所需的Web服務在存儲庫中調用以獲取數據。
我解決我的WorksheetRepository
這樣的:
UnityContainer.Resolve<IWorksheetRepository>();
它實例我WorksheetRepository
:
public sealed class WorksheetRepository : IWorksheetRepository
{
private PassportContext _passportContext;
private SecurityToken _token;
public WorksheetRepository(PassportContext passportContext, SecurityToken token)
{
_passportContext = passportContext;
_token = token;
}
}
現在,我的問題是,在WorksheetRepository
構造,既PassportContext
和SecurityToken
被實例化,但所有屬性是它們的默認值,而不是我在我的設置中設置的值。我將它們設置爲單身人士,所以當我解決IWorksheetRepository
時,我的單身人士是否應該注入我的WorksheetRepository
實施中?我在這裏失去了與統一的東西嗎?
有點背景 - 我試圖遵循最佳實踐。我知道你的大多數應用程序應該不知道你的Unity容器,它應該解決應用程序根目錄下的依賴關係。這是我試圖遵循的模式,儘管這是一個單元測試。
我無法重現您描述的問題。鑑於你在這裏的確切代碼,我能夠用正確的護照上下文和安全令牌來解析存儲庫。在RegisterInstance調用後,您是否有註冊類型(可能按慣例?)到容器中,可能會覆蓋這些註冊?你有多個統一容器嗎? – TylerOhlsen