La mia pagina di base assomiglia:Tipo di pagina di base personalizzato per le mie visualizzazioni del rasoio, come utilizzare il windsor del castello per le proprietà autowire?
namespace ASDF.Mvc.ViewEngines.Razor
{
public abstract class WebViewPage<TModel> : System.Web.Mvc.WebViewPage<TModel>
{
public ISomeHelper SomeHelper { get; set; }
}
}
Le mie opinioni/web.config
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="ASDF.Mvc.ViewEngines.Razor.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Come posso avere questo cablata in modo tale che SomeHelper sarà cablato con Castle.
Questo sta tornando nullo al momento, Ho già cablato ISomeHelper e le cose funzionano correttamente per i miei controller/repository/classi di servizio.
Immagino che questa WebViewPage sia chiamata da qualche parte dove il mio contenitore non ha accesso (come a livello di controller).
Come posso farlo funzionare?
Come funziona l'iniezione di proprietà nei miei controller? – Blankman
attendere, quindi devo impostare manualmente eventuali dipendenze di SomeHelper a destra? – Blankman
@Blankman, l'iniezione delle dipendenze funziona nei controller perché è stata utilizzata una factory provider di controller personalizzata che utilizza windsor per iniettare tali dipendenze. Per quanto riguarda la tua seconda domanda sulle dipendenze di SomeHelper, non è necessario impostarle manualmente. Si impostano queste dipendenze nello stesso modo in cui si farebbe se si trattasse di una dipendenza del controllore. Quando usi '.Risolvi() 'questo fornirà automaticamente dipendenze registrate. –