NamespaceEntry.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. namespace Mono.CompilerServices.SymbolWriter
  3. {
  4. public struct NamespaceEntry
  5. {
  6. public readonly string Name;
  7. public readonly int Index;
  8. public readonly int Parent;
  9. public readonly string[] UsingClauses;
  10. public NamespaceEntry(string name, int index, string[] using_clauses, int parent)
  11. {
  12. this.Name = name;
  13. this.Index = index;
  14. this.Parent = parent;
  15. this.UsingClauses = ((using_clauses != null) ? using_clauses : new string[0]);
  16. }
  17. internal NamespaceEntry(MonoSymbolFile file, MyBinaryReader reader)
  18. {
  19. this.Name = reader.ReadString();
  20. this.Index = reader.ReadLeb128();
  21. this.Parent = reader.ReadLeb128();
  22. int count = reader.ReadLeb128();
  23. this.UsingClauses = new string[count];
  24. for (int i = 0; i < count; i++)
  25. {
  26. this.UsingClauses[i] = reader.ReadString();
  27. }
  28. }
  29. //internal void Write(MonoSymbolFile file, MyBinaryWriter bw)
  30. //{
  31. // bw.Write(this.Name);
  32. // bw.WriteLeb128(this.Index);
  33. // bw.WriteLeb128(this.Parent);
  34. // bw.WriteLeb128(this.UsingClauses.Length);
  35. // string[] usingClauses = this.UsingClauses;
  36. // for (int i = 0; i < usingClauses.Length; i++)
  37. // {
  38. // string uc = usingClauses[i];
  39. // bw.Write(uc);
  40. // }
  41. //}
  42. public override string ToString()
  43. {
  44. return string.Format("[Namespace {0}:{1}:{2}]", this.Name, this.Index, this.Parent);
  45. }
  46. }
  47. }