2013-03-15 24 views
0

我需要在app.config中存储2段设置,并基于初始化类时传递的值,我将加载其中一个设置部分。如何将两段自定义设置添加到app.config并将它们读入到asp.net中的类中?

这就是我要实现的理想:

Public Class SiteSettings 

    Sub New(ByVal Id As Integer) 
      If Id = 1 Then 
       'Load in group1 settings. 
       'Ideally the settings will be available as properties 
      Else 
       'Load in group2 settings 
      End If 
    End Sub 
    ... 
End Class 

代码

Dim objSettings = New SiteSettings(Id) 

'just to demo what I'm trying to achieve 
response.Write(objSettings.setting1) 

的App.config

<siteSettings> 
    <section name="group1"> 
     <setting1 value="abc" /> 
    </section> 
    <section name="group2"> 
     <setting1 value="xyz" /> 
    </section> 
</siteSettings> 

回答

1

在您自己的设置中阅读不应该很难。阅读自定义配置设置时有很多代码 - 只需查看此页面上“相关”下的链接即可。如果您的设置对象是可序列化的,则可以使用自定义设置支持从app.config中检索实例。

如果你想实例化一个对象,并封装在构造函数中的所有设置读逻辑,你可能必须写一个包装为您的实际的自定义配置设置,排序是这样的:

public interface ISettings 
{ 
    int Setting1 { get; set; } 
} 

[Serializable] 
public class ActualSettings : ISettings 
{ 
    public int Setting1 { get;set;} 
} 

public class SettingsAdapter : ISettings 
{ 
    private ISettings settings; 
    public SettingsAdapter(int id) 
    { 
     if(id == 1) 
      settings = // code to retrieve instance #1 from app.config 
     else 
      settings = // code to retrieve instance #2 from app.config 
    } 

    public int Setting1 { 
     get { return settings.Setting1; } 
     set { settings.Setting1 = value; } 
    } 
} 
+0

哎呀,我在c#中完成了。但你明白了。 – 2013-03-15 14:04:48

+0

没问题,我会转换它,谢谢。 – DAC84 2013-03-15 14:18:38

+0

我已经根据这段代码工作了。 – DAC84 2013-03-15 16:00:07

0

这可能超出了app.config文件中支持的范围。但是,您当然可以在应用程序目录中包含自己的xml文件,并使用XPath对其进行解析,以按照您的描述加载设置。

相关问题