1
A
回答
1
所描述的過程主要允許您在編譯時初始化您的某些方面的字段,然後反序列化將每次程序運行時恢復這些值。這可以提高運行時性能,如果字段計算昂貴 - 您可以在編譯時運行一次。
例如,您可能希望在編譯時構建日誌記錄方面的格式字符串,因爲您已經有關於方法名稱,參數,類型的信息。
全方面的生命週期中詳細描述這個頁面上:http://doc.postsharp.net/content/aspect-lifetime
然而,當你不需要做編譯時初始化的情況下,它可能會更好也避免了序列化的步驟。 PostSharp允許你通過使用MsilAspectSerializer
來實現 - 它實際上會生成指令來調用構造函數並設置屬性和字段。
這種情況記錄在這裏:http://doc.postsharp.net/content/aspect-serialization
[OnMethodBoundaryAspectConfiguration(SerializerType=typeof(MsilAspectSerializer))]
public sealed MyAspect : OnMethodBoundaryAspect
{
//
}
相關問題
- 1. postsharp 3介紹/刪除構造函數方面
- 2. 使用PostSharp在c#中的構造函數應用方面
- 3. 使用Postsharp來引入構造函數
- 4. PostSharp攔截類構造函數和析構函數調用
- 5. 序列化在構造函數中初始化的映射
- 6. 長構造函數初始化列表
- 7. 初始化列表到構造函數
- 8. PostSharp OnMethodBoundaryAspect - 從構造函數訪問參數類型
- 9. 從參數化構造函數調用默認構造函數
- 10. C++ Boost序列化,構造函數和數據複製
- 11. 使用構造函數從類中序列化數據
- 12. 番石榴ForwardingObject,序列化和參數的構造函數
- 13. 反序列化構造函數不讀取數據正確
- 14. 反序列化時缺少JSON.Net構造函數參數
- 15. 方面在postsharp
- 16. 酷PostSharp方面
- 17. C++中構造函數,複製構造函數,析構函數序列中的額外析構函數
- 18. XAML頁面構造函數
- 19. 反序列化沒有默認的構造函數C#
- 20. 構造函數初始化列表評估順序
- 21. 具有ISerializable構造函數的可序列化類
- 22. C++使用構造作爲成員函數(對於序列化)
- 23. 類不能做沒有空構造函數的序列化
- 24. 初始化列表和構造函數調用順序
- 25. 如何從Java中的構造函數反序列化對象?
- 26. 構造函數初始化列表中的執行順序
- 27. Java - 反序列化InvalidClassException(無效的構造函數)
- 28. 如何在反序列化之前調用構造函數?
- 29. 構造函數不被稱爲反序列化
- 30. XStream通過所需的構造函數反序列化對象