繁体   English   中英

设置XML序列化结果文档根

[英]Set XML serialziation resulting doc root

我遇到了另一个问题(就编码问题而言,这可能不是一个问题),但更多的原则是..困扰了我一段时间。 我有这个C#类,如下所示:

namespace SMCProcessMonitor
{
    public class Config
    {     
        [XmlElement("Recipient")]
        public string recipient;

        [XmlElement("Server-port")]
        public int serverport;

        [XmlElement("Username")]
        public string username;

        [XmlElement("Password")]
        public string password;

        [XmlElement("Program")]
        public List<Programs> mPrograms = new List<Programs>();

        [Serializable]
        [XmlRoot("Email-Config")]
        public class Email
        {
            public string Recipient
            {
                get
                {
                    return SMCProcessMonitor.ConfigManager.mConfigurations.recipient;
                }
                set
                {
                    SMCProcessMonitor.ConfigManager.mConfigurations.recipient = value;
                }
             }

             public int ServerPort
             {
                 get
                 {
                     return SMCProcessMonitor.ConfigManager.mConfigurations.serverport;
                 }
                 set
                 {
                     SMCProcessMonitor.ConfigManager.mConfigurations.serverport = value;
                 }
             }
             public string Username
             {
                 get
                 {
                     return SMCProcessMonitor.ConfigManager.mConfigurations.username;
                 }
                 set
                 {
                     SMCProcessMonitor.ConfigManager.mConfigurations.username = value;
                 }
             }

        public string Password { get; set; }
    }
}

我可以序列化这几乎可以了。 (我最近更改了简单的get; set;设置为如上所示的完整作品,但是在序列化时我得到了类似的东西;

<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Recipient>sd</Recipient>
    <Server-port>1234</Server-port>
    <Username>dk</Username>
    <Password>kdkdk</Password>
</Config>

基本上,我想将这4个标签包装在“电子邮件设置”标签中。

将Serializable()和XmlRoot属性添加到基类中:

[Serializable()] 
[XmlRoot("Email-Settings")] 
public class Config 

有一些属性可以像这样控制xml序列化的各个方面,请参阅使用属性控制XML序列化

我认为您特别想要的是XmlRootAttribute

你需要创建一个EmailSettings包含这些4个属性的类,然后进行实例EmailSettings类的成员Config类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM