2012-03-21 16 views
0

所以,我有一個接口如下ASP.NET訪問接口方法,在查詢方法的內容是如何稱爲

public interface IMembershipProvider 
{ 
    bool GetUserGuidFromSSOToken(string ssoToken, out string userGuid, out int statusCode); 
} 

和A類如下一個實現了上述接口

public class MembershipProvider : IMembershipProvider 
{ 
    public bool GetUserGuidFromSSOToken(string ssoToken, out string userGuid, out int statusCode) 
    { 

     ....Method Contents 
    } 
} 

然後在我的演示者我有以下

private IMembershipProvider Provider; 

.. 

if (!Provider.GetUserGuidFromSSOToken(ObSSOCookie.Value, out userGuid, out statusCode)) 

而且當它被稱爲它使用該方法的代碼從Membe rshipProvider類,但我只是想知道如何從Presenter中從未引用MembershipProvider時這是可能的?

回答

1

必須使用依賴注入將MembershipProvider實例注入到Presenter中。

+0

你能解釋一下嗎?所以你的意思是MembershipProvider必須在某處被調用? – StevieB 2012-03-21 20:23:13

+0

是的,作爲Presenter依賴項的MembershipProvider對象在Presenter之外實例化,然後通過構造函數或作爲Presenter上可以設置的屬性注入到Presenter中。實例化可以由程序員完成,或者可以使用控制反轉(IOC)容器來自動連接依賴關係並注入它們。搜索*依賴注入*和*國際奧委會容器* – 2012-03-21 20:29:54

+0

是的,在構造函數的歡呼聲中發現它! – StevieB 2012-03-21 20:35:55

1

某種服務工廠提供者通常是我所做的。

private IMembershipProvider Provider = 
    MembershipProviderService.GetDefaultProvider(); 

... 


internal class MembershipProviderService 
{ 
    IMembershipProvider GetDefaultProvider() 
    { 
     return new MembershipProvider(); 
    } 
}