2017-06-19 42 views
0

我想要一个配置部分,看起来像这样:ConfigurationManager中 - 配置部分错误

<MailMessage> 
    <from value="[email protected]" /> 
    <subject value ="Subject goes here" /> 
    <body value="Hello. You've got mail!" /> 
</MailMessage> 

而且我在这个环节上的第二个答案中实现的类,如: How to implement a ConfigurationSection with a ConfigurationElementCollection

现在对我来说,部分MAILMESSAGE的元素是不是集合,但是这不应该是一个问题,但我收到的错误,当我尝试访问属性:

Unrecognized element 'from' 

我得到了部分的代码:

private static MailMessageSection emailSection = ConfigurationManager.GetSection("MailMessage") as MailMessageSection; 

这里是要素的实施:

public class MailMessageSection : ConfigurationSection 
{ 

    [ConfigurationProperty("from")] 
    public FromElement From 
    { 
      get { return base["from"] as FromElement; } 
    } 
    [ConfigurationProperty("subject")] 
    public SubjectElement Subject 
    { 
     get { return base["subject"] as SubjectElement; } 
    } 
    [ConfigurationProperty("body")] 
    public BodyElement Body 
    { 
     get { return base["body"] as BodyElement; } 
    } 

} 
public class FromElement : ConfigurationElement 
{ 
    [ConfigurationProperty("value")] 
    public string From 
    { 
     get { return base["value"] as string; } 
    } 
} 
public class SubjectElement : ConfigurationElement 
{ 

    [ConfigurationProperty("value")] 
    public string Subject 
    { 
     get { return base["value"] as string; } 
    } 
} 
public class BodyElement : ConfigurationElement 
{ 

    [ConfigurationProperty("value")] 
    public string Body 
    { 
     get { return base["value"] as string; } 
    } 
} 

任何想法可能是错误的?谢谢你的时间!

回答

1

寻找错误是可序列化的类可能令人沮丧。我建议你在VisualStudio中使用自动生成功能。下面是你如何做到这一点(非常简单):
1.复制XML示例(到剪贴板)
2.为XML创建新类(在您的情况下为“MailMessageSection”)
3.在VS go Edit>Paste Special>Paste XML As Classes

我知道这不正是为什么从没有工作,但使用自动生成的代码,然后更好的做法写在自己的原因。

希望它有帮助...