/Mono.Cecil/TypeSpecification.cs

http://github.com/jbevain/cecil · C# · 68 lines · 44 code · 15 blank · 9 comment · 0 complexity · e8683bba8147fbe0485da02fba4e47a6 MD5 · raw file

  1. //
  2. // Author:
  3. // Jb Evain (jbevain@gmail.com)
  4. //
  5. // Copyright (c) 2008 - 2015 Jb Evain
  6. // Copyright (c) 2008 - 2011 Novell, Inc.
  7. //
  8. // Licensed under the MIT/X11 license.
  9. //
  10. using System;
  11. using Mono.Cecil.Metadata;
  12. namespace Mono.Cecil {
  13. public abstract class TypeSpecification : TypeReference {
  14. readonly TypeReference element_type;
  15. public TypeReference ElementType {
  16. get { return element_type; }
  17. }
  18. public override string Name {
  19. get { return element_type.Name; }
  20. set { throw new InvalidOperationException (); }
  21. }
  22. public override string Namespace {
  23. get { return element_type.Namespace; }
  24. set { throw new InvalidOperationException (); }
  25. }
  26. public override IMetadataScope Scope {
  27. get { return element_type.Scope; }
  28. set { throw new InvalidOperationException (); }
  29. }
  30. public override ModuleDefinition Module {
  31. get { return element_type.Module; }
  32. }
  33. public override string FullName {
  34. get { return element_type.FullName; }
  35. }
  36. public override bool ContainsGenericParameter {
  37. get { return element_type.ContainsGenericParameter; }
  38. }
  39. public override MetadataType MetadataType {
  40. get { return (MetadataType) etype; }
  41. }
  42. internal TypeSpecification (TypeReference type)
  43. : base (null, null)
  44. {
  45. this.element_type = type;
  46. this.token = new MetadataToken (TokenType.TypeSpec);
  47. }
  48. public override TypeReference GetElementType ()
  49. {
  50. return element_type.GetElementType ();
  51. }
  52. }
  53. }