public static readonly ShortGuid Empty = new ShortGuid(Guid.Empty);
public ShortGuid(string value)
public ShortGuid(Guid guid)
public override string ToString()
public override bool Equals(object obj)
return _guid.Equals(((ShortGuid)obj)._guid);
return _guid.Equals((Guid)obj);
return _guid.Equals(((ShortGuid)obj)._guid);
public override int GetHashCode()
return _guid.GetHashCode();
public static ShortGuid NewGuid()
return new ShortGuid(Guid.NewGuid());
public static string Encode(string value)
Guid guid = new Guid(value);
public static string Encode(Guid guid)
string encoded = Convert.ToBase64String(guid.ToByteArray());
return encoded.Substring(0, 22);
public static Guid Decode(string value)
byte[] buffer = Convert.FromBase64String(value + "==");
public static bool operator ==(ShortGuid x, ShortGuid y)
if ((object)x == null) return (object)y == null;
return x._guid == y._guid;
public static bool operator !=(ShortGuid x, ShortGuid y)
public static implicit operator string(ShortGuid shortGuid)
public static implicit operator Guid(ShortGuid shortGuid)
public static implicit operator ShortGuid(string shortGuid)
return new ShortGuid(shortGuid);
public static implicit operator ShortGuid(Guid guid)
return new ShortGuid(guid);