Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / mscorlib / system / security / principal / identityreference.cs
blob727c8ea733f775ebc5e0bb66fbea5c6535af32b0
1 // ==++==
2 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // ==--==
6 // <OWNER>Microsoft</OWNER>
7 //
9 using System;
10 using System.Security.Policy; // defines Url class
11 using System.Globalization;
12 using System.Diagnostics.Contracts;
14 namespace System.Security.Principal
16 [System.Runtime.InteropServices.ComVisible(false)]
17 public abstract class IdentityReference
19 internal IdentityReference()
21 // exists to prevent creation user-derived classes (for now)
24 // public abstract string Scheme { get; }
26 public abstract string Value { get; }
28 // public virtual Url Url
29 // {
30 // get { return new Url(""); } //
33 public abstract bool IsValidTargetType( Type targetType );
35 public abstract IdentityReference Translate( Type targetType );
37 public override abstract bool Equals( object o );
39 public override abstract int GetHashCode();
41 public override abstract string ToString();
43 public static bool operator==( IdentityReference left, IdentityReference right )
45 object l = left;
46 object r = right;
48 if ( l == null && r == null )
50 return true;
52 else if ( l == null || r == null )
54 return false;
56 else
58 return left.Equals( right );
62 public static bool operator!=( IdentityReference left, IdentityReference right )
64 return !( left == right ); // invoke operator==