How to: Create Custom Configuration Sections Using ConfigurationSection
https://msdn.microsoft.com/en-us/library/2tw134k3.aspx
You can extend ASP.NET configuration settings with XML configuration elements of your own.
To do this, you create a custom configuration section handler.
The handler must be a .NET Framework class that inherits from the System.Configuration.ConfigurationSection class.
The section handler interprets解释 and processes the settings that are defined in XML configuration elements in a specific section of a Web.config file.
You can read and write these settings through the handler's properties.
To create a custom configuration section handler
Create a public class that inherits from the System.Configuration.ConfigurationSection class.
Add code to define the section's attributes and elements.
The following example shows how to create a handler for a custom configuration section named "PageAppearance."
The section has a RemoteOnly attribute and Font and Color elements.
The code shows how to use string, integer, and Boolean attributes.
It also shows how to use string and integer validators验证器 for those attributes. (The Boolean attribute is automatically validated经过验证的.)
The validators check the format of the configuration markup at run time and throw exceptions if the values provided for the custom attributes do not meet the specified criteria.
This example uses the declarative model.
A configuration section handler can also be implemented programmatically.
For an example, see Classes Used to Create Custom Section Handlers and the System.Configuration.ConfigurationSection class overview.
To add a custom section handler to an ASP.NET configuration file
1.In the Web.config file, add a sectionGroup element and a section element inside the configSections element, as shown in the following example.
The declaration associates the custom section handler with the section name.
Note:Nesting a section element in a sectionGroup is optional, but we recommend doing this to help organize configuration data.
<configuration>
<!-- Configuration section-handler declaration area. -->
<configSections>
<sectionGroup name="pageAppearanceGroup">
<section
name="pageAppearance"
type="Samples.AspNet.PageAppearanceSection"
allowLocation="true"
allowDefinition="Everywhere"
/>
</sectionGroup>
<!-- Other <section> and <sectionGroup> elements. -->
</configSections> <!-- Configuration section settings area. --> </configuration>
You can add the section-handler declaration in a different configuration file than the one where you add the custom configuration elements,
providing that the configuration file where the section handler is declared is higher in the configuration file hierarchy.
If you add the section handler declaration to a configuration file that is outside of your application, you must do the following:
Include the assembly that defines the section in the same directory as the Web.config file.
Ensure that the type attribute of the section element matches the manifest of the assembly (ensure that you specify both the correct namespace and type name).
If either of these conditions is not fulfilled, a configuration error will be thrown.
For more information, see ASP.NET Configuration File Hierarchy and Inheritance.
2.Add custom configuration elements in the configuration section settings area of the Web.config file, as shown in the following example:
<configuration> <!-- Configuration section-handler declaration area. --> <!-- Configuration section settings area. -->
<pageAppearanceGroup>
<pageAppearance remoteOnly="true">
<font name="TimesNewRoman" size="18"/>
<color background="000000" foreground="FFFFFF"/>
</pageAppearance>
</pageAppearanceGroup> <!-- Other configuration settings, such as system.web --> </configuration>
To programmatically access custom configuration data
Get an instance of the custom configuration object and use the GetSection method or the GetSection method to populate it.
The following example shows an ASP.NET Web page that works with the previous examples to enumerate the attributes and child elements of the custom configuration section.
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Samples.AspNet.PageAppearanceSection config =
(Samples.AspNet.PageAppearanceSection)System.Configuration.ConfigurationManager.GetSection(
"pageAppearanceGroup/pageAppearance"); Response.Write("<h2>Settings in the PageAppearance Section:</h2>");
Response.Write(string.Format("RemoteOnly: {0}<br>",
config.RemoteOnly));
Response.Write(string.Format("Font name and size: {0} {1}<br>",
config.Font.Name, config.Font.Size));
Response.Write(
string.Format("Background and foreground color: {0} {1}<br>",
config.Color.Background, config.Color.Foreground));
}
</script> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Custom Configuration Section Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>
</div>
</form>
</body>
</html>
class derived from ConfigurationSection Class
<runtime> Element
https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/runtime-element
How to programatically modify assemblyBinding in app.config?
I found what I needed. The XmlNamespaceManager is required as the assemblyBinding node contains the xmlns attribute. I modified the code to use this and it works:
private void SetRuntimeBinding(string path, string value)
{
XmlDocument doc = new XmlDocument(); try
{
doc.Load(Path.Combine(path, "MyApp.exe.config"));
}
catch (FileNotFoundException)
{
return;
} XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
manager.AddNamespace("bindings", "urn:schemas-microsoft-com:asm.v1"); XmlNode root = doc.DocumentElement; XmlNode node = root.SelectSingleNode("//bindings:bindingRedirect", manager); if (node == null)
{
throw (new Exception("Invalid Configuration File"));
} node = node.SelectSingleNode("@newVersion"); if (node == null)
{
throw (new Exception("Invalid Configuration File"));
} node.Value = value; doc.Save(Path.Combine(path, "MyApp.exe.config"));
}
How to: Create Custom Configuration Sections Using ConfigurationSection的更多相关文章
- Custom Configuration 的两种方法:1.Configuration Sections
第一种Configuration Sections 1.App.config 2.CustomConfigurationManager.cs 3.TestProgram.cs. App.config ...
- How to Create Custom Filters in AngularJs
http://www.codeproject.com/Tips/829025/How-to-Create-Custom-Filters-in-AngularJs Introduction Filter ...
- create custom launcher icon 细节介绍
create custom launcher icon 是创建你的Android app的图标 点击下一步的时候,出现的界面就是创建你的Android的图标 Foreground: ” Foregro ...
- javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
项目依赖 <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifa ...
- [转]How to Create Custom Filters in AngularJs
本文转自:http://www.codeproject.com/Tips/829025/How-to-Create-Custom-Filters-in-AngularJs Introduction F ...
- java中如何创建自定义异常Create Custom Exception
9.创建自定义异常 Create Custom Exception 马克-to-win:我们可以创建自己的异常:checked或unchecked异常都可以, 规则如前面我们所介绍,反正如果是chec ...
- [转]Create Custom Exception Filter in ASP.NET Core
本文转自:http://www.binaryintellect.net/articles/5df6e275-1148-45a1-a8b3-0ba2c7c9cea1.aspx In my previou ...
- [Angular] Create custom validators for formControl and formGroup
Creating custom validators is easy, just create a class inject AbstractControl. Here is the form we ...
- Custom Configuration 的两种方法:2.XmlSerializer XmlAttribute
第二种:XmlSerializer XmlAttribute 1.CustomConfiguration.xml 2.CustomConfigurationSetting.cs 3.CustomCon ...
随机推荐
- 洛谷 P2652 同花顺
P2652 同花顺 题目背景 所谓同花顺,就是指一些扑克牌,它们花色相同,并且数字连续. 题目描述 现在我手里有n张扑克牌,但它们可能并不能凑成同花顺.我现在想知道,最少更换其中的多少张牌,我能让这 ...
- HDU 3240
求卡特兰数前N项的和模M. 直接求必定是不可能的,卡特兰数太大了.想了好久,本打算把位数拆成素数相乘,然后记录下各素数的个数计算.可惜,TLE....因为N太大了. 除法必定是要用到逆元的,但分母与M ...
- 初识BeeFramework
由于近期的项目须要,Hybrid开发成为我開始学习的新知识.非常早之前就了解到两个开发框架--BeeFramework 和 Samurai,可是由于本人一直没有闲暇去研究,所以就一直搁置一旁了.近期才 ...
- JDBC连接mysql时出现的ssl问题
使用MySQL数据库时出现如下错误: WARN: Establishing SSL connection without server's identity verification is not r ...
- oracle rac 巡检过程详解
一 RAC环境 RAC架构,2节点信息 节点1 SQL> show parameter instance NAME TYPE ...
- [jzoj 6087] [GDOI2019模拟2019.3.26] 获取名额 解题报告 (泰勒展开+RMQ+精度)
题目链接: https://jzoj.net/senior/#main/show/6087 题目: 题解: 只需要统计$\prod_{i=l}^r (1-\frac{a_i}{x})$ =$exp(\ ...
- 获取xml字符串中的属性值
pagexml = @"<?xml version='1.0' encoding='utf-8'?> <DATAPACKET Version='2.0'> <M ...
- 转js调优
随着网络的发展,网速和机器速度的提高,越来越多的网站用到了丰富客户端技术.而现在Ajax则是最为流行的一种方式.javascript是一种解释型 语言,所以能无法达到和C/Java之类的水平,限制了它 ...
- 【转载】tom的RUNSTATS测试工具
-- 创建 runstats 包.其中包括 3 个简单 API 调用: create or replace package runstats_pkg as procedure rs_start; pr ...
- 【参考】查找Oracle最高的几个等待事件以及锁的信息
1.通过操作系统的命令找到系统资源的bottleneck,如:CPU, Memory, I/O, Network 同时主要关注IOWait, PI/PO, Memory的使用情况 2.通过查询v$s ...