#wcf
#wcf
Вопрос:
Мне нужно отправить в мой веб-сервис некоторую информацию о времени дате. Итак, я хочу использовать DateTime.
Могу ли я определить DateTime как элемент данных? Я пытаюсь определить его как элемент данных — но я получил исключение (катастрофический сбой)
Комментарии:
1. Я могу только сказать ‘молодец!’. Я программировал с. Подключитесь к сети на некоторое время и не очень часто видите исключение «катастрофический сбой»!
2. Это может быть по другой причине, это исключение не только потому, что DateTime.
3. ДА. Должна быть возможность использовать datetime в качестве возвращаемого значения веб-службы или параметра.
4. Можете ли вы показать нам какой-нибудь код ?!?!? Ваш метод обслуживания, используемый вами контракт с данными — и точные и полные сообщения об исключениях, которые вы получаете …. в противном случае, это в лучшем случае игра в угадайку!
5. Мне всегда было интересно, покажут ли создатели фреймворка когда-нибудь нам какой-нибудь код ?!?!?!? Понятно, что int и string работают «из коробки», но помимо них, коллекции и значения даты являются довольно базовыми, но для последнего примера найти невозможно.
Ответ №1:
Создайте новый класс WCFDate, и этот класс выведет строку в заданном формате, это позволит ее легко прочитать всем, кто когда-либо понадобится. Затем замените все ваши DateTimes на WCFDate.
public class WCFDate
{
public static string DateTimeFormat = "yyyy-MM-dd hh:mm:ss zz";
public string Data { get; set; }
public WCFDate() { }
public WCFDate(string data)
{
Data = data;
}
public WCFDate(DateTime date)
{
Data = date.ToString(DateTimeFormat);
}
public WCFDate(DateTime? date)
{
if (date.HasValue)
{
Data = date.Value.ToString(DateTimeFormat);
}
}
public bool HasDate
{
get
{
return !string.IsNullOrWhiteSpace(Data);
}
}
public DateTime GetDate()
{
try
{
return DateTime.ParseExact(Data, DateTimeFormat, CultureInfo.CurrentCulture);
}
catch
{
return new DateTime();
}
}