我来自一个PHP的背景,并使用WordPress的颇多,我爱怎么他们插件架构作品和挂钩事件到事件的能力名。我喜欢的最好的部分之一就是能够在将数据库值显示给最终用户之前,将* add_filter()*添加到任何数据库值。我的问题是关于如何在C#.NET环境中复制整个插件体系结构的多部分内容?基于列表发布在C#订阅模式(WordPress的钩/过滤器)
1部分: 要创建的插件我已经研究了MEF框架可能会是最好的(托管扩展性框架 -http://mef.codeplex.com/)。这是专门设计的,通过让您监视新插件的目录,跟踪依赖关系和其他常规事情,从而完成繁琐的工作。 MEF附带.NET 3.5+
第2部分 挂钩事件?我似乎无法找到有关复制基于全球渠道的事件系统的许多信息。从我到目前为止,我需要一个发布/订阅模式(这不是很难做,因为你只是创建一些具体的对象,并给他们的事件)。困难的部分是给每个事件一个'频道'的名称,并在整个系统中的所有事件成为全球集合的一部分(调解员模式)。
要复制:(http://codex.wordpress.org/Function_Reference/add_filter)
实施例1
// Add's my button to the end of the content
add_filter('the_content', 'my_plugin_button');
function my_plugin_button($content) {
// Add's my button to the end of the content
return $content . "<a href='#'>My button</a>";
}
OR
实施例2
// Add a new admin menu item by hooking in
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
}
我希望你们所有人都和我在一起吗?我已成功地复制我需要在Javascript功能,甚至jQuery有其。对()事件函数...同样的事情,但基于信道或列表...
我的2个例子:
任何人都可以点我在正确的方向或者这是C#中完全以错误的做法?
感谢您的回复Espen,但是我更倾向于开源解决方案或仅仅是基于列表的事件系统的简单复制。任何人有任何想法? – Aaron 2012-01-10 09:04:30