LicenseProviderAttribute.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // System.ComponentModel.LicenseProviderAttribute.cs
  3. //
  4. // Authors:
  5. // Martin Willemoes Hansen ([email protected])
  6. // Andreas Nahr ([email protected])
  7. //
  8. // (C) 2003 Martin Willemoes Hansen
  9. // (C) 2003 Andreas Nahr
  10. //
  11. namespace System.ComponentModel
  12. {
  13. [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
  14. public sealed class LicenseProviderAttribute : Attribute
  15. {
  16. private Type Provider;
  17. public static readonly LicenseProviderAttribute Default = new LicenseProviderAttribute ();
  18. public LicenseProviderAttribute()
  19. {
  20. this.Provider = null;
  21. }
  22. public LicenseProviderAttribute (string typeName)
  23. {
  24. this.Provider = Type.GetType (typeName, false);
  25. }
  26. public LicenseProviderAttribute (Type type)
  27. {
  28. this.Provider = type;
  29. }
  30. public Type LicenseProvider {
  31. get { return Provider; }
  32. }
  33. public override object TypeId {
  34. get {
  35. // Seems to be MS implementation
  36. return (base.ToString() + Provider.ToString());
  37. }
  38. }
  39. public override bool Equals (object obj)
  40. {
  41. if (!(obj is LicenseProviderAttribute))
  42. return false;
  43. if (obj == this)
  44. return true;
  45. return ((LicenseProviderAttribute) obj).LicenseProvider.Equals (Provider);
  46. }
  47. public override int GetHashCode()
  48. {
  49. return Provider.GetHashCode ();
  50. }
  51. }
  52. }