我想在從另一個程序集實例化類庫時執行某些代碼。是否有類庫的入口點或引導程序?我認爲一個靜態方法主要會做的伎倆,但我錯了。 這可能是配置和實例化記錄器單例,未處理的異常處理程序等。c#中的類庫有相當於Application_Start嗎?
回答
AppDomain.AssemblyLoad Event加載程序集時發生。可能這可以用來在你的類庫中調用初始化方法。
public static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyLoad += new AssemblyLoadEventHandler(MyAssemblyLoadEventHandler);
}
static void MyAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args)
{
Console.WriteLine("ASSEMBLY LOADED: " + args.LoadedAssembly.FullName);
//If this is the assembly that you want to call an initialize method..
}
下面是兩個類似的線程
你進去看了PreApplicationStartMethodAttribute?
using System.Web;
[assembly: PreApplicationStartMethod(typeof(ClassLibrary.Startup), "Start")]
namespace ClassLibrary
{
public class Startup
{
public static void Start()
{
// do some awesome stuff here!
}
}
}
更多細節:http://dochoffiday.com/professional/simulate-application-start-in-class-library
這隻適用於asp.net應用程序,並且不會在類庫測試項目的上下文中工作。在文檔中沒有任何關於它的內容,但是在我嘗試了這一點並且探究支持以調用[WebActivator文檔]的ASP.NET部分之外的啓動方法(https://github.com/davidebbo/WebActivator/ blob/master/README.markdown)在內部使用'PreApplicationStartMethodAttribute' –
因爲問題不是關於ASP.NET的,因此被退出。 – StefanLundmark
- 1. 相當於JMX的C++嗎?
- 2. C++中的動作類? (相當於C#)
- 3. 相當於C#的DateTime.Now在Java中嗎?
- 4. Django有相當於rails.vim嗎?
- 5. Angluar2有相當於ngCsp嗎?
- 6. Android有相當於UIScrollView嗎?
- 7. DataInputStream類在C#中相當於我的#
- 8. C#相當於jQuery.parents(類型)
- 9. 相當於C#的ListView的Python嗎?
- 10. 在objective-c中有一個相當於sqlite.dump的嗎?
- 11. 相當於Python的Java抽象類嗎?
- 12. 是否有相當於c#中的typedef?
- 13. 類似於C#的C++庫嗎?
- 14. 在C++中相當於SslStream類
- 15. TypeLoadExeception從Application_Start調用類庫
- 16. C++相當於Python的日誌庫
- 17. C++中的CreateObject相當於
- 18. 相當於C++中的LinkedHashmap?
- 19. 相當於C#中的sscanf_s?
- 20. 相當於C++中的Python
- 21. C#相當於C++/CLI數據類型
- 22. Java相當於C#動態類類型?
- 23. PL/SQL在C#中有相當於數組參數嗎?
- 24. Android有相當於JPanel的嗎?
- 25. Django有相當於ActiveScaffold的嗎?
- 26. SQLAlchemy有相當於Django的get_or_create嗎?
- 27. xs:選擇相當於C++枚舉嗎?
- 28. C++相當於C
- 29. 相當於C#
- 30. Java相當於C#的類型?
你正在尋找一個模塊初始化,這不是C#支持。 – SLaks
你可以提供一個單一的入口點到類庫中嗎,比如一個靜態類工廠,你必須調用這個工廠才能從庫中獲得任何有用的實例?然後,您可以在首次調用靜態類工廠時進行初始化。 – mellamokb
難道你不能只使用你知道會從該程序集中加載的某個類的靜態構造函數嗎? – svick