1

我正在维护一个 Web 应用程序,该应用程序使用如下所述的提供者模式,用于配置目的。

http://msdn.microsoft.com/en-us/library/ms972319.aspx
http://msdn.microsoft.com/en-us/library/ms972370.aspx

一切都运行良好,但是当我们向应用程序添加功能时,我们发现我们的提供程序已成为几个不属于一起的不同功能的混搭。我们正在考虑拆分配置提供程序,以便将类似的功能与其他类似的功能组织在一起。我们这样做是因为我们的原始提供程序现在有一些不需要由某些模块实现的功能。在实现提供程序时,我们不想仅仅在无关的函数上抛出 NotImplementedException,而是根本不包括它们。

我们意识到我们可以使用上述 MSDN 方法创建多个提供程序,但多个提供程序只会在 web.config 中创建更多条目。尽量减少 web.config 中的条目会很好,因为它开始变大了。

有没有人找到另一种实现提供者模型的方法?

4

3 回答 3

2

您可以查看使用控制反转 (IoC) 容器(Google“Castle Windsor”、StructureMap、AutoFac、NInject 或 Microsoft Unity)。使用 IoC,您可以在配置文件中或在应用程序的开头配置“提供程序”。

通常,您将为您拥有的每种类型的提供者创建接口。使用接口,您可以轻松地分解您的提供者,但这对您来说是有意义的。

一旦你有了接口,你可以在需要时简单地向容器询问该接口的实现,容器将负责为你实例化一个提供程序。

于 2009-01-28T02:06:26.167 回答
0

看看这里: http: //geekswithblogs.net/joycsharp/archive/2009/04/10/aggregator-provider-pattern-an-extension-of-provider-pattern.aspx

于 2009-04-30T19:06:11.880 回答
0

我相信您基本上可以使用任何允许配置的 IOC(其中大多数)来做到这一点。

我要做的方式是在代码中配置 AutoFac 以使用“已知”实现,但允许可选的“配置覆盖”。因此,如果我们曾经“转售”一个应用程序并且有人需要不同的实现,他们可以配置它。

在我的博客文章中阅读更多内容 - 希望该博客也会得到一些好的评论:http ://healthedev.blogspot.com/2011/12/making-custom-built-applications.html

于 2011-12-13T11:03:50.130 回答