我最近遇到的應用程序啓動方法是有asp.net應用程序。我需要這樣的控制檯應用程序。我有一個外部日誌記錄DLL。我想配置日誌記錄,以便在引用dll時,會自動執行一些日誌記錄代碼。我只需要在任何其他代碼執行之前調用一個類構造函數。任何幫助,將不勝感激。有沒有辦法在C#控制檯應用程序自動運行一段代碼之前,主要功能
與應用程序類似Insights自動收集有關添加對mvc應用程序的引用並將儀器密鑰添加到配置文件的perf計數器。我需要這樣的控制檯應用程序。
我最近遇到的應用程序啓動方法是有asp.net應用程序。我需要這樣的控制檯應用程序。我有一個外部日誌記錄DLL。我想配置日誌記錄,以便在引用dll時,會自動執行一些日誌記錄代碼。我只需要在任何其他代碼執行之前調用一個類構造函數。任何幫助,將不勝感激。有沒有辦法在C#控制檯應用程序自動運行一段代碼之前,主要功能
與應用程序類似Insights自動收集有關添加對mvc應用程序的引用並將儀器密鑰添加到配置文件的perf計數器。我需要這樣的控制檯應用程序。
含Main
類的靜態初始化的代碼都將進入Main
之前執行:
public class MyConsoleApp {
static MyConsoleApp() {
Console.WriteLine("I run before Main");
}
public static void Main(string[] args) {
Console.WriteLine("Main");
}
}
在我的代碼中實現了這一點。謝謝 ! –
如果你只是搜索的方式進入Main
之前執行的代碼,dasblinkenlight已經給了你一個答案。但是如果你想通過引用一個庫來執行代碼,我認爲這完全不可能。
只有在使用庫中的某些內容時,纔會執行庫中的代碼,甚至是靜態構造函數。如果添加斷點,然後等待執行直到它們變爲完全紅色,您可以觀察庫的載入時間。
更多的機會:
如果你不想編輯應用程序的代碼,添加一個應用程序,它只是調用您的記錄器初始化代碼後,你的原始應用程序的Main
。
是不是有一種方法,我可以在控制檯應用程序的app.config文件中包含一些屬性,以自動調用我的日誌記錄DLL的一些代碼,而不更改我的控制檯應用程序的代碼部分。 –
兩條不同的代碼應該如何執行?順序?那麼首先呢?平行?那麼,在你的應用程序開始之後,用代碼來確定這些問題就容易多了。 –
@VasudhaGupta我知道沒有安全的方式。我可以想象很多非常醜陋的解決方案,但我不會推薦任何這些:) – Luaan
你可以使用靜態塊 – Prabu
請看這裏@Vasudha Gupta http://stackoverflow.com/questions/8459095/static-code-blocks – Prabu
只是要清楚:你想你的日誌記錄dll自動執行時,它是加載通過另一個程序集(如您的控制檯應用程序),_而不必添加任何額外的code_到您的控制檯應用程序?它似乎並不那麼容易:請參閱http://stackoverflow.com/questions/8570999/hooking-into-an-onload-for-class-library和http://stackoverflow.com/questions/5365994/are-module-初始化程序-support-in-silverlight-and-windows-phone-7 –