簡體   English   中英

Ninject與Ria服務(自定義DomainService)

[英]Ninject with Ria Services (Custom DomainService)

我遇到的情況是,我正在訪問自定義域服務中的存儲庫,而我希望將它們注入。

    [EnableClientAccess()]
    public class UserDomainService : DomainService
    {

    public IUserRepository repo;

    public UserDomainService(IUserRepository userRepo)
        : base()
    {
       repo = userRepo;            
    }

    public IEnumerable<User> GetUsers()
    {
        return this.repo.GetUsers();
    }

我有許多域服務,但我不確定的是在哪里定義Ninject模塊來保存我所有域服務的類型綁定並將其加載到內核中。 我正在尋找一個簡單的示例來演示如何執行此操作。

我使用Ninject.Extensions.Web進行了正確的跟蹤-擴展了NinjectHttpApplication來代替默認的Global.asax。

但是,它不起作用,因為它沒有公開KernelContainer(對新定義的Ninject模塊的訪問),因此您無法像使用其提供的頁面基類那樣注入自定義域服務。

所以...

我最終創建了一個類似的類,擴展了HttpApplication,該類公開公開了靜態內核。 然后,我創建了一個基本域服務,我所有的域服務都繼承自該域。 然后在構造函數中,我進行調用以注入我的域服務實例:

    [EnableClientAccess()]
    public class BaseDomainService : DomainService
    {
        public BaseDomainService()
           : base()
        {
            MyCustomStaticKernelContainer.Inject(this);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM