如何读取LINQ to XML的字符串并设置枚举值?

时间:2015-06-01 19:55:19

标签: c# xml linq enums

我使用LINQ to XML / LINQ to Objects来创建对象,并且该对象具有枚举属性。我试图找出如何从XML中切换特定字符串并将枚举设置为特定值。

我已经列出了我到目前为止所尝试的内容,但我不知道切换属性值的实际方法。我该怎么办?

示例XML:

<post title="Title" type="newsletter">blah</post>
<post title="Another title" type="email">blah</post>
<post title="etc" type="newsletter">blah</post>

示例模型:

public class PostItem
{
    public PostType PostType { get; set; }
}

public enum PostType
{
    EMail,
    Newsletter,
    Rss
}

这是构建模型的实际代码:

public IEnumerable<PostItem> GetPosts()
{
    var data = from postItem in xDoc.Descendants("etc etc")
               select new PostItem
               {
                   Title = (string)postItem.Attribute("title"),
                   NewsType = ?

                   //**I'm wanting to do something like this**
                   switch((string)postItem.Attribute("type")
                   {
                       case "newsletter":
                           PostType = PostType.Newsletter;

                       etc.
               };

    return data;
}

0 个答案:

没有答案