- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试学习如何使用 ConfigurationSection 类。我曾经使用 IConfigurationSectionHandler 但发布它已被折旧。所以作为一个好 child ,我正在尝试“正确”的方式。我的问题是它总是返回 null。
我有一个控制台应用程序和一个 DLL。
class Program
{
static void Main(string[] args)
{
StandardConfigSectionHandler section = StandardConfigSectionHandler.GetConfiguration();
string value = section.Value;
}
}
应用配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="ConfigSectionGroup">
<section name="ConfigSection" type="Controller.StandardConfigSectionHandler, Controller" />
</sectionGroup>
</configSections>
<ConfigSectionGroup>
<ConfigSection>
<test value="1" />
</ConfigSection>
</ConfigSectionGroup>
</configuration>
DLL 中的节处理程序:
namespace Controller
{
public class StandardConfigSectionHandler : ConfigurationSection
{
private const string ConfigPath = "ConfigSectionGroup/ConfigSection/";
public static StandardConfigSectionHandler GetConfiguration()
{
object section = ConfigurationManager.GetSection(ConfigPath);
return section as StandardWcfConfigSectionHandler;
}
[ConfigurationProperty("value")]
public string Value
{
get { return (string)this["value"]; }
set { this["value"] = value; }
}
}
}
无论我为“ConfigPath”尝试什么值,它都会返回 null,或者抛出一个错误,指出“test”是一个无法识别的元素。我尝试过的值:
最佳答案
您的代码有几个问题。
您总是在 GetConfiguration
方法中返回 null
,但我假设这只是在问题中而不是在您的实际代码中。
更重要的是,ConfigPath
值的格式不正确。您有一个尾部斜杠 ConfigSectionGroup/ConfigSection/
,删除最后一个斜杠,它将能够找到该部分。
最重要的是,您声明您的部分的方式配置系统将期望您的“值”存储在您的 ConfigSection
元素的属性中。像这样
<ConfigSectionGroup>
<ConfigSection value="foo" />
</ConfigSectionGroup>
所以,把它们放在一起:
public class StandardConfigSectionHandler : ConfigurationSection
{
private const string ConfigPath = "ConfigSectionGroup/ConfigSection";
public static StandardConfigSectionHandler GetConfiguration()
{
return (StandardConfigSectionHandler)ConfigurationManager.GetSection(ConfigPath);
}
[ConfigurationProperty("value")]
public string Value
{
get { return (string)this["value"]; }
set { this["value"] = value; }
}
}
要了解有关如何配置配置部分的更多信息,请参阅这个出色的 MSDN 文档:How to: Create Custom Configuration Sections Using ConfigurationSection .它还包含有关如何在(如您的测试元素)的子元素中存储配置值的信息。
关于c# - ConfigurationSection ConfigurationManager.GetSection() 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037136/
所以这对我来说是新的。 我正在尝试在我的类库中定义一个 ConfigurationSection 类,该类从我的 WinForms 应用程序中的 App.Config 中提取。我以前从未这样做过,但从
在我的 asp.net 解决方案中,我有几个类库项目充当站点的模块。 在主项目中,我有派生自 ConfigurationSection 的 SiteConfigurationSection 类。 我希
我正在尝试读取这样的配置文件: var dllPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly. GetEx
有没有办法在配置部分设置多个枚举值? 就像您在 .net 中所做的那样 object.Filter = Filter.Update | Filter.Create; 是否支持类似的东西? 最佳答案
我的应用程序中有一个自定义配置属性。它看起来像这样: public class OverrideConfiguration : ConfigurationSection { [Configur
这个问题在这里已经有了答案: Equivalent to 'app.config' for a library (DLL) (16 个答案) 关闭 8 年前。 我正在尝试实现一个自定义配置部分,以便
我的 Web.config 文件中有以下部分: 我需要编写代码,在给定 id 的情况下遍历 cities 并返回 type。 即 if the giv
有没有办法让我在 ConfigurationSection 的自定义子类中包含一个简单的字符串数组或 List ? (或者简单数据对象的数组或通用列表,就此而言?) 我开始熟悉新的(而且非常冗长)Co
假设我有类型Point2D(这是示例),我如何将此类型与ConfigurationSection 一起使用——换句话说,为了从字符串创建我的类型的值,我必须实现哪些方法。 一种方法是提供TypeCon
我花了几周的时间试图弄清楚这个问题,这是我之前提出的一个问题的重复,但没有得到答复,所以我在这里提炼这个问题。 我创建了一个自定义类: using System; using System.Colle
我正在研究 .NET 的配置支持(ConfigurationManager 类和相关的支持类)。我想编写一个应用程序,一旦安装: 在 foo.exe.config 中有默认设置(在 Program F
我在网上找到的 ConfigurationSection 示例 ( for example ) 都有如下代码: public class ConnectionSection : Configurat
我想在我的配置中使用自定义元素。 在编写我的自定义配置类时,我使用了 ConfigurationSection,但是当我的代码尝试从我的自定义配置元素访问信息时,它会抛出一个错误,指出: 为 XxxS
问题是,正如标题所说,每当我尝试从我的 .config 文件加载自定义 CustomConfiguration 部分时,我都会遇到异常。我尝试加载的 app.config 文件如下所示。 ....
我完全被一个简单的 Microsoft 错误消息弄糊涂了。 当我针对包含自定义 ConfigurationSection 的程序集运行 XSD.exe(它又利用自定义 ConfigurationEle
我有一个 bukkit 配置文件,如下所示: effected mobs: skeleton: lower hp limit: 0 upper hp limit: 0 zomb
每次我为这个自定义部分执行 ConfigurationManager.GetSection("registeredPlugIns") 时,我都会收到此错误: 为 registeredPlugIns 创
我遇到了这个奇怪的问题...在我的代码中,无论我将 IsRequired 的值设置为 false 还是 true,它都会保持为 false。但是,如果我输入 DefaultValue,它会起作用吗?
我正在尝试创建类以使用 ConfigurationSection 和 ConfigurationElementCollection 从我的配置文件中读取,但我遇到了困难。 作为配置示例:
我正在实现自定义 .NET ConfigurationSection 并且需要验证配置是否满足两个条件之一,但我不确定如何针对多个字段进行验证。 基本上条件是,给定三个 KVP(A、B 和 C),要么
我是一名优秀的程序员,十分优秀!