У меня есть пакет экспорта блога, который экспортирует содержимое блога в Umbraco в XML.Как установить дочерний узел Umbraco в список <T>
Теперь я хочу экспортировать данные комментариев, раздел комментариев задан как childNode на узле NewsItem, как я могу использовать этот формат для захвата данных из childNode в список?
Вот мой код:
public List<BlogPosts> getPostList()
{
var contentType = ApplicationContext.Current.Services.ContentTypeService
.GetContentType("umbNewsItem");
var nodes = ApplicationContext.Current.Services.ContentService
.GetContentOfContentType(contentType.Id).Select(content => new Node(content.Id));
return nodes.Select(node => new BlogPosts()
{
Title = node.GetProperty("title").ToNullSafeString(),
BodyText = node.GetProperty("bodyText").ToNullSafeString(),
PublishDate = node.GetProperty("publishDate").ToNullSafeString(),
Author = node.GetProperty("author").ToNullSafeString(),
Image = node.GetProperty("image").ToNullSafeString(),
//This is where I want to grab the blog comments content
Comments = node.ChildrenAsList.Add("comments")
}).ToList();
}
Моя первая попытка с этим, я получаю сообщение об ошибке на .Add ("Комментарии") линии, которая гласит:
The best overloaded method match for 'System.Collections.Generic.List<umbraco.interfaces.INode>.Add(umbraco.interfaces.INode)' has some invalid arguments
следующая вещь, которую я попытался было это:
Comments = node.ChildrenAsList<BlogComment>.Add("comments").ToList()
который возвращает следующую ошибку:
The property 'umbraco.NodeFactory.Node.ChildrenAsList' cannot be used with type arguments
Я также попытался это:
Comments = node.ChildrenAsList.Add("comments").ToList()
который возвращается сообщение об ошибке:
The best overloaded method match for 'System.Collections.Generic.List<umbraco.interfaces.INode>.Add(umbraco.interfaces.INode)' has some invalid arguments
Это моя · блоги, · Модель:
public class BlogPosts
{
public string Title { get; set; }
public string BodyText { get; set; }
public string PublishDate { get; set; }
public string Author { get; set; }
public string Image { get; set; }
public List<BlogComment> Comments { get; set; }
}
public class BlogComment
{
public string Comment { get; set; }
public string CommentDate { get; set; }
}
Это пример Umbraco backoffice страница: Image
Я искал во всем StackOverflow и Google для всего, что относится к призывающим данным из childNode в список, но тип списка здесь INode, при использовании этого:
Comments = node.ChildrenAsList
возвращает эту ошибку:
Cannot implicitly convert type 'System.Collections.Generic.List<umbraco.interfaces.INode>' to 'System.Collections.Generic.List<UmbracoBlogsExportPackage.Models.BlogComment>'
Чувак. Вам нужно описать, что вы пробовали. Вам нужно показать, что вы изучили немного, прежде чем спрашивать о переполнении стека. Вам нужно описать, что не работает. В противном случае мы не сможем (или не будем) вам помочь. Я смотрю на этот вопрос и думаю: «с чем он сталкивается?«потому что вы не включаете ЛЮБЮЮ информацию об ошибке ИЛИ любую информацию о том, что вы уже пробовали ... Вот помощь, чтобы задать хороший вопрос: http://stackoverflow.com/help/how-to-ask –
Переполнение стека НЕ должен быть «Я хочу это, пожалуйста, сделай это для меня». ВАМ нужно (хотеть) сделать это и УЧИТЬСЯ от него. Тогда, когда вы действительно застряли И вы все исследовали И вы, я попробовал все, что вы можете придумать, вы можете поставить все это в свой вопрос - и получите лучшую помощь. –
Я даже пробовал: 'Комментарии = node.ChildrenAsList.Find (System.Predicate .Find (System.Predicate < umbraco.interfaces.INode>) 'имеет некоторые недопустимые аргументы –