2017-09-26 53 views
-1

我的服務是運行時生成的。我需要從生成的服務生成控制器。 PreInitialize方法在首次運行時運行。我需要它在運行時從我的方法中調用。我怎樣才能組織它?如何在主機運行後調用preInitialize方法?

+0

aspnetboilerplate自動爲每個appservice創建控制器。 PreInitialize()在模塊類中。無論何時載入模塊,它都由aspnetboilerplate執行。我猜你對自己在做的事情是錯誤的。寫下你正在嘗試解決的目標任務,我們會向你推薦一些其他解決方案。 –

+0

我有微服務。我的微服務負責其他服務之間的連接。這項服務必須在我的微服務中註冊。在註冊期間,他們提供有關它們的函數(API調用)的信息,並基於此我必須爲Boilerplate生成我的AppServices(運行時)。問題是,我猜我們必須在主機運行期間調用PreInitialize和Initialize方法一次,然後在生成AppServices時從註冊函數調用。 –

回答

0

ASPNET核心調查在應用程序啓動控制器。所以,我知道你不能在應用程序啓動後添加控制器。

0

看來你在說的是自定義IServiceProvider的實現。

您可以使用自己只是在Startup改變方法簽名:

public IServiceProvider ConfigureServices(IServiceCollection services) 
+0

我在配置服務中使用此簽名。 public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); return services.AddAbp (); } –

+0

但我的問題不是關於那個服務。我有一些在樣板中調用AppServices的類,我的類是運行時生成的。 –

+0

如果你實現自己的'IServiceProvider',你可以實現任何實例化/返回實例的規則,包括運行時類的生成和月相檢測。 – Dmitry