Dreamine.Communication.Core 1.0.2
Dreamine.Communication.Core 통신 기능과 관련 API를 제공합니다.
로딩중...
검색중...
일치하는것 없음
PlainTextProtocolOptions.cs
이 파일의 문서화 페이지로 가기
1using System.Text;
2using System.Threading;
3
5
14public sealed class PlainTextProtocolOptions
15{
24 public const string Utf8EncodingName = "UTF-8";
25
34 public const string KoreanCodePage949EncodingName = "CP949";
35
45
55
64 public string Route { get; init; } = "external.text";
65
74 public string Name { get; init; } = "External.Text";
75
84 public bool NormalizePayloadToUtf8 { get; init; } = true;
85
118 public static Encoding CreateEncoding(string? encodingName)
119 {
120 if (string.IsNullOrWhiteSpace(encodingName))
121 {
122 return new UTF8Encoding(false, true);
123 }
124
125 if (string.Equals(encodingName, Utf8EncodingName, StringComparison.OrdinalIgnoreCase) ||
126 string.Equals(encodingName, "UTF8", StringComparison.OrdinalIgnoreCase))
127 {
128 return new UTF8Encoding(false, true);
129 }
130
131 if (string.Equals(encodingName, KoreanCodePage949EncodingName, StringComparison.OrdinalIgnoreCase) ||
132 string.Equals(encodingName, "949", StringComparison.OrdinalIgnoreCase) ||
133 string.Equals(encodingName, "ks_c_5601-1987", StringComparison.OrdinalIgnoreCase))
134 {
136 return Encoding.GetEncoding(949);
137 }
138
140 return Encoding.GetEncoding(encodingName);
141 }
142
152 {
153 if (Interlocked.Exchange(ref _isCodePageProviderRegistered, 1) == 1)
154 {
155 return;
156 }
157
158 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
159 }
160}