2012-10-17 73 views
1

我有一個ASP.NET MVC應用程序,我正在努力。我正在使用自定義MembershipProvider(MyCustomMembershipProvider)來訪問成員資格信息,因爲我們已經有了一個需要使用我們自己的模式的數據庫。模擬MembershipProvider與自定義方法

我正在使用類似於NerdDinner 2示例的類,其中包含AccountProvider的AccountMembershipService(實現IMembershipService),因此我可以注入不同的模擬提供者。但是,我已經使用CreateUser和ChangePassword的幾種不同方法擴展了MyCustomMembershipProvider。除非您知道這是自定義方法,否則這些方法在MembershipProvider中不可用。

我該怎麼解決這個問題?我是否需要另一個包含我的新提供者方法的接口層?

+0

我是新來的MVC和模擬測試,所以我可能不會很好地解釋情況。我有一個AccountMembershipService,它將MembershipProvider作爲構造函數中的一個參數。這樣,當我運行應用程序時,傳入的MembershipProvider是一個MyCustomMembershipProvider ...當我測試時,傳入的MembershipProvider是一個MockMembershipProvider。因此,當我在AccountMembershipService上調用CreateUser時,CreateUser在AccountMembershipServices包含的MembershipProvider上不可用。 – user1754692

回答

0

我不完全確定我明白你的問題是什麼。如果您在MembershipProvider上使用包裝器接口,那麼提供器實現的方法應該沒有關係,因爲您的應用只使用接口,並且可以將接口更改爲任何所需的接口。

或者你問你如何從自定義提供程序調用自定義方法?如果是這樣,那麼關於嘲諷的全部內容以及不僅僅是red魚,因爲它與問題無關。

如果這確實是您的問題,那麼您只需將Membership.Provider方法轉換爲您的提供程序的類型即可。這樣的事情:

var myProvider = Membership.Provider as MyCustomerMembershipProvider; 
myProvider.CreateUser(...); 
相關問題