nav*_*een 9 .net c# asp.net settings web-config
刚才我在.NET WinForms中遇到了可以处理复杂类型的ApplicationSettings.
目前我在我的ASP.NET WebForms中使用AppSettings,它只能处理字符串.
我可以在Webforms中使用ApplicationSettings吗?如果是这样的话?
Ale*_*Aza 38
基本理念:
在另一个项目中,创建将保留自定义设置的类.例如:
public class EndPoint
{
public string HostName { get; set; }
public int Port { get; set; }
}
public class EndPointCollection : Collection<EndPoint>
{
}
Run Code Online (Sandbox Code Playgroud)构建包含类的项目.
转到" 项目属性 "中的"设置"选项卡.它会说还没有设置文件,并询问您是否要创建它.
添加新的设置文件.在类型字段中,选择" 浏览"并键入完整的类名.例如:ClassLibrary.EndPointCollection
.保存并重建项目.
点击设置值的编辑按钮.(请注意,如果在前一步中创建的类位于同一项目中,则无法使用此选项.)使用UI编辑设置.
如果您打开web.config/app.config文件,您将看到如下内容:
...
<applicationSettings>
<WebApplication1.Properties.Settings>
<setting name="MyEndPoints"
serializeAs="Xml">
<value>
<ArrayOfEndPoint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EndPoint>
<HostName>MyHostName</HostName>
<Port>12345</Port>
</EndPoint>
<EndPoint>
<HostName>MyHost1</HostName>
<Port>1212</Port>
</EndPoint>
</ArrayOfEndPoint>
</value>
</setting>
</WebApplication1.Properties.Settings>
</applicationSettings>
...
Run Code Online (Sandbox Code Playgroud)最后,要从代码中读取这些设置,只需使用即可
var endPointCollection = Settings.Default.MyEndPoints;
Run Code Online (Sandbox Code Playgroud)
设计师将在幕后创建强类型对象以允许上述工作.您可以在Settings.Designer.cs
文件中看到完整的详细信息.
底线:您可以进行各种自定义类型设置,只要这些设置具有XmlSerializable或具有类型转换器.此技术适用于Web应用程序,WinForms,WPF,控制台应用程序等.
归档时间: |
|
查看次数: |
10617 次 |
最近记录: |