Какой лучший способ получить этот XElement при чтении csproj с XDocument? - PullRequest
1 голос
/ 30 мая 2011

Я добавляю файлы в проект cs за пределами vs.net (изображения, css и т. Д., Файлы вне нашей группы, но они необходимы для публикации).Я загружаю csproj и запрашиваю ItemGroup, которая содержит узлы «Content».

XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003";
XDocument projectDocument = XDocument.Load("someproject.csproj");

var itemGroup = projectDocument.Element(msbuild + "Project")
                               .Elements(msbuild + "ItemGroup")
                               .Descendants()
                               .Where(x => x.Name == msbuild +"Content")
                               .First().Parent;

Есть ли лучший способ получить эту группу?

Спасибо.

1 Ответ

1 голос
/ 31 мая 2011

Вы можете сделать это так:

var itemGroup = 
    projectDocument.Element(msbuild + "Project")
                   .Elements(msbuild + "ItemGroup")
                   .Where(x => x.Descendants()
                                .Any(y => y.Name == msbuild +"Content")
                         )
                   .FirstOrDefault();
...