我來自一個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