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


C# CompilationUnitSyntax.AddMembers方法代码示例

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


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

示例1: TranslationUnitPorter

        public TranslationUnitPorter(CXCursor translationUnit, string ns, IBindingLocator bindingLocator)
        {
            if (translationUnit.kind != CXCursorKind.CXCursor_TranslationUnit)
                throw new ArgumentException ();

            if (string.IsNullOrWhiteSpace (ns))
                throw new ArgumentException ();

            if (bindingLocator == null)
                throw new ArgumentNullException ();

            this.translationUnit = translationUnit;
            this.bindingLocator = bindingLocator;

            cu = SyntaxFactory.CompilationUnit ();

            IEnumerable<UsingDirectiveSyntax> usings = CreateUsings ();
            foreach (var u in usings)
                cu = cu.AddUsings (u);

            var nsDecl = CreateNamespace (ns);
            foreach (var c in PortClasses ())
                nsDecl = nsDecl.AddMembers (c);

            cu = cu.AddMembers (nsDecl);
        }
开发者ID:newky2k,项目名称:sample-translator,代码行数:26,代码来源:TranslationUnitPorter.cs

示例2: ProcessOverridenNamespaceNames

        /// <summary>
        /// Causes the structure if the SAT to change. It can cause leftovers (empty structures) to be present.
        /// </summary>
        private void ProcessOverridenNamespaceNames()
        {
            CompilationUnitSyntax newNode = this.node;
            CSharpSyntaxTree newTree = this.tree;

            // Removing classes
            var removableNodes = new List<BaseTypeDeclarationSyntax>();
            foreach (var info in this.transformationInfos)
            {
                removableNodes.Add(info.OriginalNode);
            }

            // Removing the classes in the array
            // These classes will have another namespace assigned, this will work in case the program defines a namespace or not
            newNode = newNode.RemoveNodes(removableNodes, SyntaxRemoveOptions.KeepNoTrivia);

            // Adding classes in new namespaces
            foreach (var info in this.transformationInfos)
            {
                var namespaceSyntax = SyntaxFactory.NamespaceDeclaration(SyntaxFactory.IdentifierName(info.OverridenNamespace));
                namespaceSyntax = namespaceSyntax.AddMembers(info.TransformedNode);

                // TODO: Use the cache here to feed values, the new node should be provided

                newNode = newNode.AddMembers(namespaceSyntax);
            }

            this.newNode = newNode;
        }
开发者ID:andry-tino,项目名称:Rosetta,代码行数:32,代码来源:ScriptNamespaceBasedASTTransformer.cs


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