我有来自任何国家/地区的电话号码列表(字符串)。
例如:
var items = new List<string> { "+989302794433", "009891234599882", "+391234567890", "00336615551212"};
起初,我认为每个国家/地区代码长度正好是两个数字,例如(33:法国,39:意大利,98:伊朗,...)。
使用libphonenumber库,您必须通过 regCode 进行解析。并且因为(在我的场景中)我得到了字符串列表(手机号码),那么我必须将国家代码与号码分开。
foreach (var item in items)
{
int countryCode = 0;
var number = "";
if (item.StartsWith("+"))
{
countryCode = int.Parse(item.Substring(1, 2));
number = item.Substring(3);
}
else if (item.StartsWith("00"))
{
countryCode = int.Parse(item.Substring(2, 2));
number = item.Substring(4);
}
var regCode = phoneUtil.GetRegionCodeForCountryCode(countryCode);
var numberWithRegCode = phoneUtil.Parse(number, regCode);
if (!phoneUtil.IsValidNumber(numberWithRegCode)) continue;
//else ...
}
Run Code Online (Sandbox Code Playgroud)
此代码仅适用于长度为两个数字的国家/地区代码!
但是过了一会儿,我知道某些国家/地区代码长度是一个数字(例如,美国:1)甚至三个数字!。
现在,是否存在使用libphonenumber库(或其他解决方案)来解决此问题的任何方法?
多谢
我想将 Mass Transit 与 RabbitMQ 和 Kafka 结合使用作为消息代理。
在部署阶段可以决定使用哪一个来传输消息。
我知道什么是 ConsumeContext、ISendEndpointProvider 或 IPublishEndpoint。根据 链接,该接口在 RabbitMQ 和 Kafka 之间共享,用于发布消息并使用该消息。
我在 .Net Core 应用程序启动时配置了 RabbitMQ 和 Kafka,并通过部署阶段的 appSetting 可以决定必须注册哪一个。
这种方法对于在我的应用程序中同时配置 Kafka 和 RabbitMq 是否正确?