【发布时间】:2017-04-28 12:40:33
【问题描述】:
我有一个 asp.net Web 应用程序,它的应用程序事件很少;例如 - 创建用户。我的一位客户希望在创建新用户时收到通知。所以我有一个特定于该客户端的 dll,我可以通过注册到应用程序事件 onCreateUser 来放置发送通知的逻辑。
现在我想知道是否有更好和通用的方法,以便通过替换这个 dll,对于不同的客户端,我可以做其他事情而不是发送通知。或者通过简单地删除 dll,我可以关闭此行为。
编辑: 我知道可以通过使用属性(如 PreApplicationStartMethodAttribute)或使用接口等动态加载应用反射的 dll 来做到这一点。但想确保我没有重新发明轮子。
【问题讨论】:
-
我会考虑动态加载程序集。如果您只是删除/替换它,则需要重新启动应用程序才能注册更改。
-
谢谢迈克!通过动态加载,您的意思是搜索特定的接口实现还是使用任何属性?我最初认为 PreApplicationStartMethodAttribute 会解决这个问题;但不确定我是否能够使用这种方法注册自己的活动
-
我的第一个倾向是动态加载 dll,然后使用反射来调用所需的方法。这是一个关于类似问题的 SO 线程:stackoverflow.com/questions/1137781/… 但您可以在 google/bing 上搜索“C# 动态加载程序集”,这应该可以帮助您开始
-
迈克,动态加载是我最后的选择;我可以使用属性以更好的方式做到这一点。我可以找到具有该属性的类(甚至可能是方法)并调用它们,以便我可以在事件的多个 dll 中执行多个操作。但我要求使用框架中已有的东西来解决这个问题,而不是重新发明轮子
标签: c# asp.net dll event-handling