protected internal override CodeLocation GetMemberSourceLocation(StaticMemberWrapper member) { var memberHandle = (MemberReference)member.Handle; switch (memberHandle.MetadataToken.TokenType) { case TokenType.TypeDef: return(GuessTypeSourceLocation((TypeDefinition)memberHandle)); case TokenType.Method: return(GetMethodSourceLocation((MethodDefinition)memberHandle)); case TokenType.GenericParam: var owner = ((GenericParameter)memberHandle).Owner; if (owner is TypeDefinition) { return(GuessTypeSourceLocation((TypeDefinition)owner)); } if (owner is MethodDefinition) { return(GetMethodSourceLocation((MethodDefinition)owner)); } return(CodeLocation.Unknown); default: return(GuessTypeSourceLocation((TypeDefinition)memberHandle.DeclaringType)); } }
/// <summary> /// Creates a wrapper. /// </summary> /// <param name="policy">The reflection policy.</param> /// <param name="handle">The underlying reflection object.</param> /// <param name="member">The member to which the parameter belongs.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/> /// or <paramref name="member"/> is null.</exception> public StaticParameterWrapper(StaticReflectionPolicy policy, object handle, StaticMemberWrapper member) : base(policy, handle) { if (member == null) throw new ArgumentNullException("member"); this.member = member; }
protected internal override string GetMemberName(StaticMemberWrapper member) { var memberHandle = (MemberReference)member.Handle; // Strip off generic parameter count from name. var name = memberHandle.Name; var tickPos = name.IndexOf('`'); return(tickPos < 0 ? name : name.Substring(0, tickPos)); }
/// <summary> /// Creates a wrapper. /// </summary> /// <param name="policy">The reflection policy.</param> /// <param name="handle">The underlying reflection object.</param> /// <param name="member">The member to which the parameter belongs.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/> /// or <paramref name="member"/> is null.</exception> public StaticParameterWrapper(StaticReflectionPolicy policy, object handle, StaticMemberWrapper member) : base(policy, handle) { if (member == null) { throw new ArgumentNullException("member"); } this.member = member; }
protected override string GetMemberName(StaticMemberWrapper member) { IDeclaredElement memberHandle = (IDeclaredElement)member.Handle; string shortName = memberHandle.ShortName; if (shortName == "get_this") shortName = "get_Item"; else if (shortName == "set_this") shortName = "set_Item"; IOverridableMember overridableMemberHandle = memberHandle as IOverridableMember; if (overridableMemberHandle != null && overridableMemberHandle.IsExplicitImplementation) return overridableMemberHandle.ExplicitImplementations[0].DeclaringType.GetCLRName().Replace('+', '.') + "." + shortName; return shortName; }
protected override IEnumerable<StaticAttributeWrapper> GetMemberCustomAttributes(StaticMemberWrapper member) { IAttributesOwner memberHandle = (IAttributesOwner)member.Handle; return GetAttributesForAttributeOwner(memberHandle); }
private StaticMethodWrapper WrapAccessor(IAccessor accessorHandle, StaticMemberWrapper member) { return accessorHandle != null ? new StaticMethodWrapper(this, accessorHandle, member.DeclaringType, member.ReflectedType, member.Substitution) : null; }
/// <inheritdoc /> public override bool Equals(object obj) { StaticMemberWrapper other = obj as StaticMemberWrapper; return(EqualsByHandle(other) && Equals(declaringType, other.declaringType)); }
/// <summary> /// Gets the source code location of a member. /// </summary> /// <param name="member">The member, not null.</param> /// <returns>The source code location, or <see cref="CodeLocation.Unknown" /> if not available.</returns> protected internal abstract CodeLocation GetMemberSourceLocation(StaticMemberWrapper member);
protected internal override string GetMemberName(StaticMemberWrapper member) { var memberHandle = (MemberReference)member.Handle; // Strip off generic parameter count from name. var name = memberHandle.Name; var tickPos = name.IndexOf('`'); return tickPos < 0 ? name : name.Substring(0, tickPos); }
/// <summary> /// Gets the short name of a member. /// In the case of a generic type, should exclude the generic parameter count /// part of the name. eg. "`1" /// </summary> /// <param name="member">The member, not null.</param> /// <returns>The member's name.</returns> protected internal abstract string GetMemberName(StaticMemberWrapper member);
private StaticMethodWrapper WrapAccessor(MethodDefinition accessorHandle, StaticMemberWrapper member) { return(accessorHandle != null ? new StaticMethodWrapper(this, accessorHandle, member.DeclaringType, member.ReflectedType, member.Substitution) : null); }
protected internal override IEnumerable <StaticAttributeWrapper> GetMemberCustomAttributes(StaticMemberWrapper member) { Mono.Cecil.ICustomAttributeProvider memberHandle = member.Handle as Mono.Cecil.ICustomAttributeProvider; if (memberHandle != null) { return(EnumerateAttributes(memberHandle.CustomAttributes)); } return(EmptyArray <StaticAttributeWrapper> .Instance); }
protected internal override CodeLocation GetMemberSourceLocation(StaticMemberWrapper member) { var memberHandle = (MemberReference)member.Handle; switch (memberHandle.MetadataToken.TokenType) { case TokenType.TypeDef: return GuessTypeSourceLocation((TypeDefinition)memberHandle); case TokenType.Method: return GetMethodSourceLocation((MethodDefinition)memberHandle); case TokenType.GenericParam: var owner = ((GenericParameter)memberHandle).Owner; if (owner is TypeDefinition) return GuessTypeSourceLocation((TypeDefinition)owner); if (owner is MethodDefinition) return GetMethodSourceLocation((MethodDefinition)owner); return CodeLocation.Unknown; default: return GuessTypeSourceLocation((TypeDefinition)memberHandle.DeclaringType); } }
protected override CodeLocation GetMemberSourceLocation(StaticMemberWrapper member) { IDeclaredElement memberHandle = (IDeclaredElement)member.Handle; return GetDeclaredElementSourceLocation(memberHandle); }
/// <summary> /// Gets the custom attributes of a member. /// </summary> /// <param name="member">The member, not null.</param> /// <returns>The custom attributes.</returns> protected internal abstract IEnumerable <StaticAttributeWrapper> GetMemberCustomAttributes(StaticMemberWrapper member);
/// <summary> /// Gets the custom attributes of a member. /// </summary> /// <param name="member">The member, not null.</param> /// <returns>The custom attributes.</returns> protected internal abstract IEnumerable<StaticAttributeWrapper> GetMemberCustomAttributes(StaticMemberWrapper member);
protected internal override IEnumerable<StaticAttributeWrapper> GetMemberCustomAttributes(StaticMemberWrapper member) { Mono.Cecil.ICustomAttributeProvider memberHandle = member.Handle as Mono.Cecil.ICustomAttributeProvider; if (memberHandle != null) return EnumerateAttributes(memberHandle.CustomAttributes); return EmptyArray<StaticAttributeWrapper>.Instance; }