2011-03-24 76 views
3

我以前用過PostSharp來做AOP,我一直在用Autofac和DynamicProxy2檢查AOP,我很好奇它是否有其他優點。PostSharp vs DynamicProxy2 Interface Interception

即一個比另一個更可靠,可測試,穩定,高性能等等?

謝謝。

+0

你的目標是什麼?運行時動態代碼(依賴注入等)還是僅僅爲了處理您的交叉問題? – 2011-03-24 21:11:15

+0

也檢出http://www.sharpcrafters.com/postsharp/alternatives – 2011-03-24 21:12:36

+0

@DustinDavis - 主要是橫切關注,例如AOP日誌記錄。 – Adam 2011-03-24 21:36:27

回答

5

爲了更好地解釋@jgauffin所說的話,PostSharp在編譯器構建C#之後使用MSIL重寫,並將寫入的代碼插入到爲該方面設置的特定切入點中。 PostSharp超越了這一點,並進行了許多智能優化檢查,以幫助獲得最佳性能。有關更多信息,請參閱http://programmersunlimited.wordpress.com/2011/03/23/postsharp-weaving-community-vs-professional-reasons-to-get-a-professional-license/

DynamicProxy2是JIT發出的,這意味着運行時。國際海事組織,如果你只是處理橫切關注,然後使用像PostSharp編譯時AOP框架。但是如果您需要在運行時進行動態更改,則PostSharp不適合您。

+0

謝謝。我過去曾使用過PostSharp並喜歡它。我讀過一些博客和文章,指的是使用DynamicProxy2進行接口攔截而不是PostSharp。老實說,我認爲DynamicProxy2有它的地方,但我不認爲我有他們在做什麼。 – Adam 2011-03-24 21:37:11

+0

@Adam,如果您需要PostSharp幫助,請隨時與我聯繫。 – 2011-03-24 22:26:06

0

PostSharp在編譯時運行,所以它應該更快。 (它將代碼注入到程序集中)