30 readonly Type typeInstance;
31 readonly PropertyInfo property;
40 this.typeInstance = typeInstance;
41 this.property = property;
44 public override bool Equals(
object obj)
47 return other !=
null && other.typeInstance == typeInstance && other.property == property;
52 return typeInstance.GetHashCode() * 537 +
property.GetHashCode();
57 get {
return property.Attributes; }
62 get {
return property.CanRead; }
67 get {
return property.CanWrite; }
70 private MethodInfo Wrap(MethodInfo method)
80 return Wrap(property.GetGetMethod(nonPublic));
85 return Wrap(property.GetSetMethod(nonPublic));
90 var accessors =
property.GetAccessors(nonPublic);
91 for (
int i = 0; i < accessors.Length; i++)
92 accessors[i] = Wrap(accessors[i]);
99 return property.GetRawConstantValue();
102 internal override bool IsPublic
104 get {
return property.IsPublic; }
107 internal override bool IsNonPrivate
109 get {
return property.IsNonPrivate; }
112 internal override bool IsStatic
114 get {
return property.IsStatic; }
117 internal override PropertySignature PropertySignature
119 get {
return property.PropertySignature.ExpandTypeParameters(typeInstance); }
124 get {
return property.Name; }
129 get {
return typeInstance; }
132 public override Module Module
134 get {
return typeInstance.Module; }
139 get {
return property.MetadataToken; }
142 internal override PropertyInfo BindTypeParameters(Type type)
147 internal override bool IsBaked
149 get {
return property.IsBaked; }
152 internal override int GetCurrentToken()
154 return property.GetCurrentToken();