Список кодов страны - C#

Я записал свой собственный сериализатор JSON с помощью DataContractJsonSerializer в System.ServiceModel.Web.dll блок [который является компонентом WCF, включенного в.NET 3.5 как стандартный блок, и в.NET 3,5 Клиентских Профиля SP1] (в.NET 4.0 и Silverlight 4, это было перемещено в System.Runtime.Serialization.dll).

using System.IO;
using System.Runtime.Serialization.Json;

public class JsonObjectSerializer 
{
    public string Serialize(T instance) where T : class
    {
        var serializer = new DataContractJsonSerializer(typeof(T));
        using (var memoryStream = new MemoryStream())
        {
            serializer.WriteObject(memoryStream, instance);

            memoryStream.Flush();
            memoryStream.Position = 0;

            using (var reader = new StreamReader(memoryStream))
            {
                return reader.ReadToEnd();
            }
        }
    }

    public T Deserialize(string serialized) where T : class
    {
        var serializer = new DataContractJsonSerializer(typeof(T));
        using (var memoryStream = new MemoryStream())
        {
            using (var writer = new StreamWriter(memoryStream))
            {
                writer.Write(serialized);
                writer.Flush();

                memoryStream.Position = 0;

                return serializer.ReadObject(memoryStream) as T;
            }
        }
    }
}

11
задан MPelletier 30 April 2012 в 11:10
поделиться

2 ответа

Когда вы говорите «код страны», я предполагаю, что вы имеете в виду двухбуквенный код, как в ISO 3166 . Затем вы можете использовать конструктор RegionInfo, чтобы проверить, является ли ваша строка правильным кодом.

string countryCode = "de";
try {
    RegionInfo info = new RegionInfo(countryCode);
}
catch (ArgumentException argEx)
{
    // The code was not a valid country code
}

Вы также можете, как вы указываете в своем вопросе, проверить, является ли это допустимым кодом страны для немецкого языка. Затем вы просто передаете конкретное название культуры вместе с кодом страны.

string language = "de";
string countryCode = "de";
try {
    RegionInfo info = new RegionInfo(string.Format("{0}-{1}", language, countryCode));
}
catch (ArgumentException argEx)
{
    // The code was not a valid country code for the specified language
}
14
ответ дан 3 December 2019 в 04:52
поделиться

Если вам нужны только страны / регионы, вы можете использовать класс RegionInfo: http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.aspx

3
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: