2011-11-05 66 views

回答

8

库中的类一般不应直接读取web.config并在构造函数中进行设置。

但是,在某些情况下,库可以直接读取web.config。对于您可以定义一个custom configuration section或使用WebConfigurationManager.AppSettings

您需要添加引用System.Web程序集,你需要包括您要使用配置管理器文件中的命名空间System.Web.Configuration。

+0

请访问项目的类这些设置,您可以写一些代码,因为我从你的链接得到的代码,但仍WebconfigurationManager不是在工作室 –

+0

@Muhammad的情报显示 - 你能对此有何评论解释一下? <<通常库中的一个类不应直接读取web.config并在构造函数中进行设置。 >>为什么是这样?我在架构上认为这是好的,因为类库是在Web应用程序主机的上下文中加载的。 – Howiecamp

+0

如果你单元测试你的类,你将不会有一个web.config来喂它,库也通常是可重用的实用程序,不应该绑定到他们运行的平台或上下文,除非你有一个特定的库这只适用于基于Web的应用程序,在这种情况下,您可以定义自己的配置部分,因为配置属于应用程序而不是库。 –

0

将您的类库配置设置移至web.config。

1

如果您可以将该类从类库中移走,但如果您不能或者您不想这样做,那么您可以使用System.Configuration。

1)添加对System.Configuration的引用。

2)使用ConfigurationManager代替WebConfigurationManager;代码将几乎相同,只需使用ConfigurationManager替换WebConfigurationManager即可。

0

我有这个相同的问题,我假设你想使用ConfigurationManager来访问你的配置文件中的一些属性。

另一种方法是将设置文件添加到项目中。这是我在我的项目中所做的:

  1. 右键单击项目名称,转到菜单上的“属性”链接。
  2. 点击左边标签上的设置链接
  3. 如果你还没有生成一个VS会给你一个链接来创建一个。
  4. 一旦你创建了一个,你可以为你需要的属性添加键值对。
  5. VS将在项目中包含一个settings.settings文件,该文件将包含在设置文件中已添加的属性(你应该看到他们在Settings.Designer.cs假设你使用C#)
  6. 然后,您可以通过做[ProjectNamespace].Properties.Settigns.Default.[PropertyName]