当前位置: 首页>>代码示例>>C#>>正文


C# Project.GetDocumentId方法代码示例

本文整理汇总了C#中Project.GetDocumentId方法的典型用法代码示例。如果您正苦于以下问题:C# Project.GetDocumentId方法的具体用法?C# Project.GetDocumentId怎么用?C# Project.GetDocumentId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Project的用法示例。


在下文中一共展示了Project.GetDocumentId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddOrUpdateNewTreeToOldMap

                private static ImmutableDictionary<DocumentId, SyntaxTree> AddOrUpdateNewTreeToOldMap(
                    Project newProject, Compilation newCompilation, CompilationSet oldSet, CancellationToken cancellationToken)
                {
                    Compilation oldCompilation;
                    if (!oldSet.Compilation.TryGetValue(out oldCompilation))
                    {
                        return ImmutableDictionary.CreateRange(GetNewTreeMap(newProject, newCompilation));
                    }

                    var map = oldSet.Trees;
                    foreach (var newTree in newCompilation.SyntaxTrees)
                    {
                        cancellationToken.ThrowIfCancellationRequested();

                        if (oldCompilation.ContainsSyntaxTree(newTree))
                        {
                            continue;
                        }

                        var documentId = newProject.GetDocumentId(newTree);
                        Contract.Requires(documentId != null);

                        map = map.SetItem(documentId, newTree);
                    }

                    return map;
                }
开发者ID:jerriclynsjohn,项目名称:roslyn,代码行数:27,代码来源:SemanticModelWorkspaceServiceFactory.cs

示例2: GetNewTreeMap

 private static IEnumerable<KeyValuePair<DocumentId, SyntaxTree>> GetNewTreeMap(Project project, Compilation compilation)
 {
     foreach (var tree in compilation.SyntaxTrees)
     {
         var documentId = project.GetDocumentId(tree);
         if (documentId != null)
         {
             yield return KeyValuePair.Create(documentId, tree);
         }
     }
 }
开发者ID:jerriclynsjohn,项目名称:roslyn,代码行数:11,代码来源:SemanticModelWorkspaceServiceFactory.cs

示例3: AddOrUpdateNewTreeToOldMap

                private static ImmutableDictionary<DocumentId, SyntaxTree> AddOrUpdateNewTreeToOldMap(
                    Project newProject, Compilation newCompilation, CompilationSet oldSet, CancellationToken cancellationToken)
                {
                    if (!oldSet.Compilation.TryGetValue(out var oldCompilation))
                    {
                        return ImmutableDictionary.CreateRange(GetNewTreeMap(newProject, newCompilation));
                    }

                    var map = oldSet.Trees;
                    foreach (var newTree in newCompilation.SyntaxTrees)
                    {
                        cancellationToken.ThrowIfCancellationRequested();

                        if (oldCompilation.ContainsSyntaxTree(newTree))
                        {
                            continue;
                        }

                        var documentId = newProject.GetDocumentId(newTree);

                        // GetDocumentId will return null for #load'ed trees.
                        // TODO:  Remove this check and add logic to fetch the #load'ed tree's
                        // Document once https://github.com/dotnet/roslyn/issues/5260 is fixed.
                        if (documentId == null)
                        {
                            Debug.Assert(newProject.Solution.Workspace.Kind == "Interactive");
                            continue;
                        }

                        map = map.SetItem(documentId, newTree);
                    }

                    return map;
                }
开发者ID:GuilhermeSa,项目名称:roslyn,代码行数:34,代码来源:SemanticModelWorkspaceServiceFactory.cs


注:本文中的Project.GetDocumentId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。