控制台应用程序Prestart

时间:2017-01-06 09:24:50

标签: c# .net attributes console-application custom-attributes

是否有类似于WebActivatorEx.PreApplicationStartMethod(webActivatorEx dll)的属性,用于在.NET 4.5中实现的控制台应用程序。或者是否可以创建一个?我想创建一个属性,它将使一个方法在执行控制台应用程序的主方法之前执行。我不想使用Postsharp或任何不带.NET 4.5框架的类似库。

1 个答案:

答案 0 :(得分:-1)

如果不必修改Main函数本身或至少修改包含Main函数的类,就无法做到这一点。

我不明白你为什么要这样做。为什么不简单地在Main的开头添加一些代码?关于你究竟想要达到的目标,或许你可以在你的问题中更加具体。

静态构造函数

我能想到的最简单的方法是为包含Main方法的类创建一个静态构造函数。这将在调用Main方法之前执行。

自定义属性

可以创建自定义属性,但如果没有编写明确搜索具有该属性的内容的代码,它将无法运行。请参阅writing custom attributesretrieving information stored in attributes上的MSDN文章。

所以一个属性实际上并没有做任何事情。为了使它工作,您需要使用Reflection。 PreApplicationStartMethodAttribute的工作方式相同:框架显式搜索此属性并通过Reflection执行方法。

如果这是你想要做的,你需要:

  • 创建自定义属性
  • Main中编写一些代码,查找该属性并执行指定的方法。

虽然我不明白你为什么在控制台应用程序中需要这样的东西。