/Mono.Cecil/MemberReference.cs
http://github.com/jbevain/cecil · C# · 107 lines · 74 code · 24 blank · 9 comment · 11 complexity · 56d1cfe534fe0eca7b11b94ab6b7f879 MD5 · raw file
- //
- // Author:
- // Jb Evain (jbevain@gmail.com)
- //
- // Copyright (c) 2008 - 2015 Jb Evain
- // Copyright (c) 2008 - 2011 Novell, Inc.
- //
- // Licensed under the MIT/X11 license.
- //
- using System;
- namespace Mono.Cecil {
- public abstract class MemberReference : IMetadataTokenProvider {
- string name;
- TypeReference declaring_type;
- internal MetadataToken token;
- internal object projection;
- public virtual string Name {
- get { return name; }
- set {
- if (IsWindowsRuntimeProjection && value != name)
- throw new InvalidOperationException ();
- name = value;
- }
- }
- public abstract string FullName {
- get;
- }
- public virtual TypeReference DeclaringType {
- get { return declaring_type; }
- set { declaring_type = value; }
- }
- public MetadataToken MetadataToken {
- get { return token; }
- set { token = value; }
- }
- public bool IsWindowsRuntimeProjection {
- get { return projection != null; }
- }
- internal MemberReferenceProjection WindowsRuntimeProjection {
- get { return (MemberReferenceProjection) projection; }
- set { projection = value; }
- }
- internal bool HasImage {
- get {
- var module = Module;
- if (module == null)
- return false;
- return module.HasImage;
- }
- }
- public virtual ModuleDefinition Module {
- get { return declaring_type != null ? declaring_type.Module : null; }
- }
- public virtual bool IsDefinition {
- get { return false; }
- }
- public virtual bool ContainsGenericParameter {
- get { return declaring_type != null && declaring_type.ContainsGenericParameter; }
- }
- internal MemberReference ()
- {
- }
- internal MemberReference (string name)
- {
- this.name = name ?? string.Empty;
- }
- internal string MemberFullName ()
- {
- if (declaring_type == null)
- return name;
- return declaring_type.FullName + "::" + name;
- }
- public IMemberDefinition Resolve ()
- {
- return ResolveDefinition ();
- }
- protected abstract IMemberDefinition ResolveDefinition ();
- public override string ToString ()
- {
- return FullName;
- }
- }
- }