本文整理汇总了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);
}
示例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;
}