2015-05-15 57 views
0

我正在編寫驗證zip \郵政編碼的自定義驗證屬性。爲了它的工作,我絕對需要知道選定的國家。但事實證明,這很難做到。在控制器外部使用Nop服務?

在大多數視圖模型中,nop使用其id來傳遞國家,這意味着我需要對其進行解密。這樣做的方式是使用CountryService,因爲它可以將ID轉換爲國家名稱,但問題是我該如何實際執行此操作。

如果我要創建一個新的CountryService對象,我將不得不創建並傳遞一些依賴項(CacheService對象等),這聽起來像是實現結果的錯誤方式。那麼我該如何在控制器之外實際使用Nop服務(在我的情況下,在自定義驗證屬性中)?

回答

3

您不需要創建對象,但從服務定位器獲取實例。

事情是這樣的:

var countryService= EngineContext.Current.Resolve<ICountryService>(); 

您可以檢查任何屬性在nopCommerce像WwwRequirementAttribute,並檢查它如何使用定位器模式。

相關問題