我试图找出是否可以设置自定义属性来确定方法调用是否可以处理。我想要的是类似于我在MVC3应用程序中使用的[Authorize()]
属性。
基本上,我有一个COM对象,我正在连接(第三方DMS软件),我想确保用户在处理方法内容之前没有关闭程序。我可以将调用包装在try/catch
中,或者我可以包装一个检查application.running
的方法,但我喜欢属性功能和简单标记(如果需要)。
到目前为止,我发现的所有教程/文档都是如何使用属性标记方法/类(它们通常在教程中使用字符串),然后在代码中访问这些字符串值。
如果可能的话,这不是我想要做的事情。再次,在MVC3 / 4中你可以做......
[Authorize()]
public class ControllerClass : Controller {
public ActionResult Index(){ return View(); }
....etc....
}
在此示例中,始终必须由传递Authorize
的人调用索引。我不确定是否需要实例化类或调用方法。
所以,毕竟我的问题很简单。可以为C#WinForms库实现类似于Authorize()
的东西吗?
答案 0 :(得分:2)
[Serializable]
public class LogAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
if (!application.running)
throw new Exception(String.Format("Method {0} is not allowed to call when application is not running.", args.Method.Name));
}
}