0

我正在爲Visual Studio 2010構建vspackage,並且需要能夠在構建過程中無形地將代碼注入到解決方案中的每個函數中。在構建之前插入代碼

目前我可以用這個:

TextDocument doc = (elemInfo.ProjectItem.Document.Object() as TextDocument); 

EditPoint ep = doc.CreateEditPoint(elemInfo.StartPoint); 
ep.Insert(sb.ToString()); 

直接插入代碼到代碼文件中都可以看到。這是有效的,但由於代碼僅收集運行時數據,所以我從不需要查看它。有沒有一種方法在構建過程中注入代碼而不公開地插入上面的代碼?

我可以爲解決方案中的所有代碼文件創建臨時文件,並將代碼注入到它們中,然後在調試會話結束後處理它們。這是最好的方法嗎?

當intellitrace從正在運行的可執行文件收集數據時,是不是需要做類似的事情呢?我假設它將代碼注入到每個方法中以保存變量狀態。

+1

[AOP](http://www.sharpcrafters.com/)FTW – bzlm

+1

笑你的評論讀AOP FTW bzlm,似乎是難以理解的潺潺一目瞭然XD – RhysW

回答

1

PostSharp,http://www.sharpcrafters.com/ AOP基本上按照@bzlm

+0

我看不出這有什麼幫助,我的visual studio插件可以用於任何c#項目,並且它們不一定使用postsharp。用戶單擊一個按鈕,然後注入代碼,然後運行程序,然後在運行結束時刪除代碼。最好所有這些都將無形地完成哪些postharp不能達到(需要屬性)。我不認爲這個小插件的成本是合理的。 – LynchDev

相關問題