有什么方法可以使用Spring.NET将依赖项注入到Immediacy CMS控件中,理想情况下,在初始化控件时无需使用ContextRegistry
?
最佳答案
作为前即时员工,我一直都在遇到这种问题。
将即时性视为位于框架顶部的标准.net Web应用程序。
他们只是扩展了诸如Page类之类的基类,并添加了一些全局有用的对象。
即时性确实具有自己的控件基类,但是没有什么可以阻止您基于标准.net类创建自己的控件。
我看到的一个技巧是,您需要做一些可能会破坏即时功能的特定操作,即创建一个子应用程序,然后在添加到主应用程序的自定义控件中从中调用页面。
这样,您的子应用程序就可以做自己喜欢的事情而不会破坏任何内容,而父级即时应用程序也可以从该应用程序中读取流。
最简单的技巧是创建一个可以做一件事的控件...
WebClient wc = new WebClient();
this.Controls.Add(Page.ParseControl( wc.DownloadString("/childapp/yourcustomthing.aspx") ));
执行此操作的最干净的其他方法是将所需的子组件实现为根据我所见的ashx处理程序。
可能引起的唯一问题是您丢失了子应用程序中对象的即时框架,但是您可以轻松地通过查询字符串传递一些关键信息,然后构建包含所需内容的“依赖关系缓存”。
我知道这不是一个理想的选择,但是当您需要执行除列表/类似的插件或页面或模板之外的任何事情时,即时性确实会使生活变得困难。