本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol.GetAttributes方法的典型用法代码示例。如果您正苦于以下问题:C# NamespaceOrTypeSymbol.GetAttributes方法的具体用法?C# NamespaceOrTypeSymbol.GetAttributes怎么用?C# NamespaceOrTypeSymbol.GetAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol
的用法示例。
在下文中一共展示了NamespaceOrTypeSymbol.GetAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AppendMembers
private void AppendMembers(StringBuilder result, NamespaceOrTypeSymbol container, string indent)
{
string memberIndent;
if (container is NamedTypeSymbol)
{
memberIndent = indent + " ";
result.Append(indent);
result.AppendLine("{");
AppendCustomAttributes(result, container, indent, inBlock: true);
if (container.GetAttributes().Length > 0)
{
result.AppendLine();
}
}
else
{
memberIndent = indent;
}
foreach (var member in container.GetMembers().OrderBy(m => m.Name, System.StringComparer.InvariantCulture))
{
switch (member.Kind)
{
case SymbolKind.NamedType:
var namedType = (PENamedTypeSymbol)member;
result.Append(memberIndent);
result.Append(".class ");
MetadataSignatureHelper.AppendTypeAttributes(result, namedType.Flags);
result.Append(" ");
result.Append(member);
if (namedType.BaseType != null)
{
result.AppendLine();
result.Append(memberIndent);
result.Append(" extends ");
result.Append(namedType.BaseType);
}
if (namedType.Interfaces.Length > 0)
{
result.AppendLine();
result.Append(memberIndent);
result.Append(" implements ");
result.Append(string.Join(", ", namedType.Interfaces));
}
result.AppendLine();
AppendMembers(result, namedType, memberIndent);
break;
case SymbolKind.Namespace:
var ns = member as PENamespaceSymbol;
if ((object)ns != null)
{
AppendMembers(result, ns, indent);
}
break;
case SymbolKind.Method:
var method = member as PEMethodSymbol;
if ((object)method != null && method.AssociatedSymbol == null)
{
result.Append(memberIndent);
result.Append(".method ");
AppendMethod(result, method, memberIndent);
AppendCustomAttributes(result, member, memberIndent, inBlock: false);
}
break;
case SymbolKind.Field:
var field = (PEFieldSymbol)member;
result.Append(memberIndent);
result.Append(".field ");
MetadataSignatureHelper.AppendFieldAttributes(result, field.Flags);
result.Append(" ");
result.Append(field.Type);
result.Append(" ");
result.Append(member.Name);
result.AppendLine();
AppendCustomAttributes(result, member, memberIndent, inBlock: false);
break;
case SymbolKind.Property:
var property = (PEPropertySymbol)member;
string propertyName;
result.Append(memberIndent);
result.Append(".property ");
PropertyAttributes propertyAttrs;
//.........这里部分代码省略.........