trang cơ sở của tôi trông giống như:Loại trang cơ sở tùy chỉnh cho chế độ xem dao cạo của tôi, cách sử dụng windsor lâu đài cho thuộc tính autowire?
namespace ASDF.Mvc.ViewEngines.Razor
{
public abstract class WebViewPage<TModel> : System.Web.Mvc.WebViewPage<TModel>
{
public ISomeHelper SomeHelper { get; set; }
}
}
quan điểm của tôi/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>
Làm thế nào tôi có thể đã này có dây lập như vậy mà SomeHelper sẽ được nối bằng cách sử dụng Castle.
Điều này đang trở lại null vào lúc này, Tôi đã kết nối ISomeHelper và mọi thứ hoạt động tốt cho các bộ điều khiển/kho lưu trữ/dịch vụ của tôi.
Tôi đoán WebViewPage này được gọi ở đâu đó nơi vùng chứa của tôi không có quyền truy cập (như ở cấp bộ điều khiển).
Tôi làm cách nào để hoạt động?
Cách tính năng tiêm thuộc tính hoạt động trong bộ điều khiển của tôi? – Blankman
chờ đợi, vì vậy tôi phải sau đó tự thiết lập bất kỳ sự phụ thuộc của SomeHelper để sau đó phải không? – Blankman
@Blankman, phụ thuộc tiêm hoạt động trong bộ điều khiển bởi vì bạn đã sử dụng một nhà cung cấp bộ điều khiển tùy chỉnh nhà máy sử dụng windsor để tiêm những phụ thuộc. Theo như câu hỏi thứ hai của bạn về sự phụ thuộc của SomeHelper có liên quan, bạn không cần phải tự thiết lập chúng. Bạn thiết lập những phụ thuộc theo cùng một cách bạn sẽ như thể nó là một phụ thuộc điều khiển. Khi bạn sử dụng '.Giải quyết() 'điều này sẽ tự động cung cấp các phụ thuộc đã đăng ký. –