首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ConfigurationElement中包含CDATA部分?

如何在ConfigurationElement中包含CDATA部分?
EN

Stack Overflow用户
提问于 2009-01-07 21:45:01
回答 2查看 7.3K关注 0票数 8

目前,我在我的配置文件中得到了类似下面这样的东西:

代码语言:javascript
复制
<blah.mail>
    <templates>
        <add name="TemplateNbr1" subject="..." body="Hi!\r\nThis is a test.\r\n.">
            <from address="blah@hotmail.com" />
        </add>
    </templates>
</blah.mail>

我希望能够将body表示为template的子节点(即上面示例中的add节点),以如下所示结束:

代码语言:javascript
复制
<blah.mail>
    <templates>
        <add name="TemplateNbr1" subject="...">
            <from address="blah@hotmail.com" />
            <body><![CDATA[Hi!
This is a test.
]]></body>
        </add>
    </templates>
</blah.mail>
EN

回答 2

Stack Overflow用户

发布于 2009-01-21 12:35:29

在您的自定义配置元素类中,您需要覆盖方法OnDeserializeUnrecognizedElement

示例:

代码语言:javascript
复制
public class PluginConfigurationElement : ConfigurationElement
{
    public NameValueCollection CustomProperies { get; set; }

    public PluginConfigurationElement()
    {
        this.CustomProperties = new NameValueCollection();
    }

    protected override bool OnDeserializeUnrecognizedElement(string elementName, XmlReader reader)
    {
        this.CustomProperties.Add(elementName, reader.ReadString());
        return true;
    }
}

我不得不解决同样的问题。

票数 5
EN

Stack Overflow用户

发布于 2009-01-17 20:02:57

在ConfigurationElement子类中,尝试使用XmlWriter.WriteCData重写SerializeElement以写入数据,并使用XmlReader.ReadContentAsString重写DeserializeElement以读回数据。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/422230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档