是否有类似于WebActivatorEx.PreApplicationStartMethod(webActivatorEx dll)的属性,用于在.NET 4.5中实现的控制台应用程序。或者是否可以创建一个?我想创建一个属性,它将使一个方法在执行控制台应用程序的主方法之前执行。我不想使用Postsharp或任何不带.NET 4.5框架的类似库。
答案 0 :(得分:-1)
如果不必修改Main
函数本身或至少修改包含Main
函数的类,就无法做到这一点。
我不明白你为什么要这样做。为什么不简单地在Main
的开头添加一些代码?关于你究竟想要达到的目标,或许你可以在你的问题中更加具体。
我能想到的最简单的方法是为包含Main
方法的类创建一个静态构造函数。这将在调用Main方法之前执行。
您可以创建自定义属性,但如果没有编写明确搜索具有该属性的内容的代码,它将无法运行。请参阅writing custom attributes和retrieving information stored in attributes上的MSDN文章。
所以一个属性实际上并没有做任何事情。为了使它工作,您需要使用Reflection。 PreApplicationStartMethodAttribute的工作方式相同:框架显式搜索此属性并通过Reflection执行方法。
如果这是你想要做的,你需要:
Main
中编写一些代码,查找该属性并执行指定的方法。虽然我不明白你为什么在控制台应用程序中需要这样的东西。