Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置应用程序挂钩-C#/ASP.NET_C#_Asp.net_Hook - Fatal编程技术网

设置应用程序挂钩-C#/ASP.NET

设置应用程序挂钩-C#/ASP.NET,c#,asp.net,hook,C#,Asp.net,Hook,许多流行的应用程序,如Wordpress、WHMC和大多数PHP论坛,只需指定一个具有特定名称的函数,就可以让插件连接到核心应用程序事件(如注册、登录、创建帖子等) 我知道这些应用程序不是预编译的,但是有可能用C#做类似的事情吗?我已经研究过事件处理程序,但似乎只有当插件能够实例化我们想要挂接的类时,才能实现这一点(或者至少搜索让我相信这一点) 理想情况下,这些钩子将连接到业务层类事件/方法中,并且可以通过多个对象连接到,因此它将在WinForms或ASP.NET MVC中运行。有一个随.NET

许多流行的应用程序,如Wordpress、WHMC和大多数PHP论坛,只需指定一个具有特定名称的函数,就可以让插件连接到核心应用程序事件(如注册、登录、创建帖子等)

我知道这些应用程序不是预编译的,但是有可能用C#做类似的事情吗?我已经研究过事件处理程序,但似乎只有当插件能够实例化我们想要挂接的类时,才能实现这一点(或者至少搜索让我相信这一点)


理想情况下,这些钩子将连接到业务层类事件/方法中,并且可以通过多个对象连接到,因此它将在WinForms或ASP.NET MVC中运行。

有一个随.NET 3.5提供的插件框架。该框架提供了非常强大的机制,可以通过主机应用程序公开接口,并管理、动态加载卸载加载项等。

为什么我首先想到的核心概念是依赖项注入?我从未在我的任何应用程序中使用过插件系统。DI在这方面会有帮助吗???

如果您设计的应用程序具有可扩展性,这很容易。的设计正是为了这种情况,使它非常容易


它将作为核心框架的一部分包含在.NET 4中,但现在可以在3.5中下载使用。

根据Alex的回答,这应该很有用:

System.AddIn工具和示例

有关我们senerio的详细信息可能会有所帮助,但一般来说,您可能希望了解提供商PSTERN

有3个组成部分: -一项功能的抽象(接口/基类) -一个工厂方法,它通过config来确定要创建的类的类型 -[您的]扩展/实现抽象的自定义类。例如,一个成员资格提供程序类,用于访问自定义dasta源以获取用户信息

这在关闭逻辑时非常有用。如果你想创建一个具有可交换UI组件的应用程序,那就另当别论了

从2.0开始,ASP.NET支持这一点。 有关提供商的详细信息:

可能也很有用:MEF vs.System.AddIn如果有人在技术上批准,也许是!有趣的Brian,只是出于好奇,你将如何创建可交换的UI组件?老实说,Ram,不确定。我不知道有一个明确的/标准的方法来处理这个问题。我认为在ASP.NET环境下,这不是一件简单的事情。