30 internal MailAddress(
string displayName,
string userName,
string domain,
Encoding displayNameEncoding)
39 : this(address, null, null)
44 : this(address, displayName, null)
51 bool flag =
TryParse(address, displayName, displayNameEncoding, out parsedData, throwExceptionIfFail:
true);
57 return TryCreate(address,
null, out result);
60 public static bool TryCreate(
string address,
string? displayName, [NotNullWhen(
true)] out
MailAddress? result)
62 return TryCreate(address, displayName,
null, out result);
67 if (
TryParse(address, displayName, displayNameEncoding, out (
string,
string,
string,
Encoding) parsedData, throwExceptionIfFail:
false))
69 result =
new MailAddress(parsedData.Item1, parsedData.Item2, parsedData.Item3, parsedData.Item4);
76 private static bool TryParse(
string address,
string displayName,
Encoding displayNameEncoding, out (
string displayName,
string user,
string host,
Encoding displayNameEncoding) parsedData,
bool throwExceptionIfFail)
78 if (
string.IsNullOrEmpty(address))
80 if (throwExceptionIfFail)
84 parsedData =
default((
string,
string,
string,
Encoding));
87 if (displayNameEncoding ==
null)
91 if (displayName ==
null)
93 displayName =
string.Empty;
95 if (!
string.IsNullOrEmpty(displayName))
99 parsedData =
default((
string,
string,
string,
Encoding));
102 if (displayName.Length >= 2 && displayName[0] ==
'"' && displayName[^1] ==
'"')
104 displayName = displayName.Substring(1, displayName.Length - 2);
109 parsedData =
default((
string,
string,
string,
Encoding));
112 if (
string.IsNullOrEmpty(displayName))
114 displayName = parsedAddress.DisplayName;
116 parsedData = (displayName: displayName, user: parsedAddress.User, host: parsedAddress.Host, displayNameEncoding: displayNameEncoding);
180 internal string Encode(
int charsConsumed,
bool allowUnicode)
182 string empty =
string.Empty;
string GetAscii(string unicode)
static bool TryParseAddress(string data, out ParseAddressInfo parsedAddress, bool throwExceptionIfFail)
static bool TryNormalizeOrThrow(string input, [NotNullWhen(true)] out string normalizedString, bool throwExceptionIfFail)
static readonly EncodedStreamFactory s_encoderFactory
MailAddress(string address, string? displayName, Encoding? displayNameEncoding)
override int GetHashCode()
string GetAddress(bool allowUnicode)
static bool TryCreate(string address, string? displayName, [NotNullWhen(true)] out MailAddress? result)
string GetSmtpAddress(bool allowUnicode)
string Encode(int charsConsumed, bool allowUnicode)
static bool TryCreate(string address, [NotNullWhen(true)] out MailAddress? result)
static bool TryParse(string address, string displayName, Encoding displayNameEncoding, out(string displayName, string user, string host, Encoding displayNameEncoding) parsedData, bool throwExceptionIfFail)
readonly Encoding _displayNameEncoding
string GetHost(bool allowUnicode)
readonly string _userName
override string ToString()
readonly string _displayName
MailAddress(string address, string? displayName)
MailAddress(string address)
string GetUser(bool allowUnicode)
static bool TryCreate(string address, string? displayName, Encoding? displayNameEncoding, [NotNullWhen(true)] out MailAddress? result)
override bool Equals([NotNullWhen(true)] object? value)
MailAddress(string displayName, string userName, string domain, Encoding displayNameEncoding)
static bool IsAscii(string value, bool permitCROrLF)
static string SmtpNonAsciiUserNotSupported
static string Format(string resourceFormat, object p1)
static string net_emptystringcall
static string SmtpInvalidHostName
static StringComparer InvariantCultureIgnoreCase
static Encoding GetEncoding(int codepage)
int EncodeString(string value, Encoding encoding)
string GetEncodedString()