// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0
-
using System;
using System.Runtime.InteropServices;
public struct CustomAttributeNamedArgument {
CustomAttributeTypedArgument typedArgument;
MemberInfo memberInfo;
-
- internal CustomAttributeNamedArgument (MemberInfo memberInfo, object typedArgument)
+
+ public
+ CustomAttributeNamedArgument (MemberInfo memberInfo, object value)
+ {
+ this.memberInfo = memberInfo;
+ this.typedArgument = (CustomAttributeTypedArgument) value;
+ }
+
+ public CustomAttributeNamedArgument (MemberInfo memberInfo, CustomAttributeTypedArgument typedArgument)
{
this.memberInfo = memberInfo;
- this.typedArgument = (CustomAttributeTypedArgument) typedArgument;
+ this.typedArgument = typedArgument;
}
public MemberInfo MemberInfo {
}
}
+ public bool IsField {
+ get { return memberInfo.MemberType == MemberTypes.Field; }
+ }
+
+ public string MemberName {
+ get { return memberInfo.Name; }
+ }
+
public override string ToString ()
{
return memberInfo.Name + " = " + typedArgument.ToString ();
}
+
+ public override bool Equals (object obj)
+ {
+ if (!(obj is CustomAttributeNamedArgument))
+ return false;
+ CustomAttributeNamedArgument other = (CustomAttributeNamedArgument) obj;
+ return other.memberInfo == memberInfo &&
+ typedArgument.Equals (other.typedArgument);
+ }
+
+ public override int GetHashCode ()
+ {
+ return (memberInfo.GetHashCode () << 16) + typedArgument.GetHashCode ();
+ }
+
+ public static bool operator == (CustomAttributeNamedArgument left, CustomAttributeNamedArgument right)
+ {
+ return left.Equals (right);
+ }
+
+ public static bool operator != (CustomAttributeNamedArgument left, CustomAttributeNamedArgument right)
+ {
+ return !left.Equals (right);
+ }
}
}
-#endif
-