1 //------------------------------------------------------------------------------ 2 // <copyright file="DataObjectAttribute.cs" company="Microsoft"> 3 // Copyright (c) Microsoft Corporation. All rights reserved. 4 // </copyright> 5 //------------------------------------------------------------------------------ 6 7 namespace System.ComponentModel { 8 9 using System; 10 using System.Security.Permissions; 11 12 /// <devdoc> 13 /// </devdoc> 14 [AttributeUsage(AttributeTargets.Class)] 15 public sealed class DataObjectAttribute : Attribute { 16 17 public static readonly DataObjectAttribute DataObject = new DataObjectAttribute(true); 18 19 public static readonly DataObjectAttribute NonDataObject = new DataObjectAttribute(false); 20 21 public static readonly DataObjectAttribute Default = NonDataObject; 22 23 private bool _isDataObject; 24 DataObjectAttribute()25 public DataObjectAttribute() : this(true) { 26 } 27 DataObjectAttribute(bool isDataObject)28 public DataObjectAttribute(bool isDataObject) { 29 _isDataObject = isDataObject; 30 } 31 32 public bool IsDataObject { 33 get { 34 return _isDataObject; 35 } 36 } 37 38 /// <internalonly/> Equals(object obj)39 public override bool Equals(object obj) { 40 if (obj == this) { 41 return true; 42 } 43 44 DataObjectAttribute other = obj as DataObjectAttribute; 45 return (other != null) && (other.IsDataObject == IsDataObject); 46 } 47 48 /// <internalonly/> GetHashCode()49 public override int GetHashCode() { 50 return _isDataObject.GetHashCode(); 51 } 52 53 /// <internalonly/> IsDefaultAttribute()54 public override bool IsDefaultAttribute() { 55 return (this.Equals(Default)); 56 } 57 } 58 } 59