Xamarin Public Jenkins (auto-signing) 95fdb59ea6 Imported Upstream version 6.6.0.89
Former-commit-id: b39a328747c2f3414dc52e009fb6f0aa80ca2492
2019-09-24 08:53:40 +00:00

50 lines
1.7 KiB
C#

using Mono.Cecil;
using Mono.Collections.Generic;
namespace Mono.Documentation.Util
{
public class AttachedPropertyDefinition : AttachedPropertyReference, IMemberDefinition
{
private readonly FieldDefinition fieldDefinition;
public AttachedPropertyDefinition(FieldDefinition fieldDefinition, MetadataToken metadataToken) : base(fieldDefinition)
{
this.fieldDefinition = fieldDefinition;
MetadataToken = metadataToken;
}
public MemberReference GetMethod
{
get => this.DeclaringType.GetMember(
$"Get{AttachedEntitiesHelper.GetPropertyName(fieldDefinition.Name)}",
m => (m as MethodReference)?.Parameters.Count == 1);
}
public MemberReference SetMethod
{
get => this.DeclaringType.GetMember(
$"Set{AttachedEntitiesHelper.GetPropertyName(fieldDefinition.Name)}",
m => (m as MethodReference)?.Parameters.Count == 2);
}
public Collection<CustomAttribute> CustomAttributes => fieldDefinition.CustomAttributes;
public bool HasCustomAttributes => fieldDefinition.HasCustomAttributes;
public bool IsSpecialName
{
get { return fieldDefinition.IsSpecialName; }
set { fieldDefinition.IsSpecialName = value; }
}
public bool IsRuntimeSpecialName
{
get { return fieldDefinition.IsRuntimeSpecialName; }
set { fieldDefinition.IsRuntimeSpecialName = value; }
}
public new TypeDefinition DeclaringType
{
get { return fieldDefinition.DeclaringType; }
set { fieldDefinition.DeclaringType = value; }
}
}
}