Строка не была распознана как допустимый DateTime в сопоставлении Biztalk

У нас есть следующий код в LINQPad 5, который компилируется и дает ожидаемый результат:

void Main(){
Console.WriteLine(thissucks("Sometext. IfCondition: 20180125.")); }


public string thissucks(string inputString){

    string[] words = inputString.Split(':');
    string date = words.GetValue(1).ToString();
    string comment = words.GetValue(0).ToString();
    date = date.Replace(".","");
    date = date.Trim();

    if (inputString.Contains("IfCondition"))
    {
        DateTime formatDate = DateTime.ParseExact(date,"yyyyMMdd", null);
        return comment + ": " + formatDate.ToString("dd.MM.yyyy") + ".";
    }
    else
    {
        return inputString;
    }

}

Это производит вывод: Sometext. IfCondition: 25.01.2018

Однако, когда мы помещаем его в наш функтоид скрипта на карте biztalk, мы получаем ошибку «Строка не была распознана как допустимая дата и время».


person SJBilly    schedule 25.01.2018    source источник
comment
Вы уверены, что выдает код и ввод, а не что-то еще? Что такое полная строка исключения, включая стек вызовов? Передача null в качестве CultureInfo не означает don't use a CultureInfo кстати. Это означает использовать текущий.   -  person Panagiotis Kanavos    schedule 25.01.2018
comment
Вам не нужно использовать GetValue с массивом или ToString() со строкой. Это фактический код, который выдает ошибки, или он был переведен из Visual Basic?   -  person Panagiotis Kanavos    schedule 25.01.2018
comment
Это скопировано из LINQPad, и метод thissucks — это то, что используется в функтоиде скрипта в biztalk mapper. Он отлично работает в LINQPad, но показывает, что String не был распознан как допустимый DateTime. в Biztalk при тестировании карты. Это единственная ошибка, которую он показывает. Я не уверен, где я могу найти стек вызовов в biztalk?   -  person SJBilly    schedule 25.01.2018
comment
Для какого ввода? Что произойдет, если SomeText содержит :?   -  person Panagiotis Kanavos    schedule 25.01.2018
comment
Для входа, используемого в качестве параметра в файле main. Некоторый текст никогда не будет содержать :, когда выполняется условие IfCondition, но иногда может содержать, если условие IfCondition не выполняется. Может это все еще проблема?   -  person SJBilly    schedule 25.01.2018
comment
Что-то подсказывает мне, что там есть :, что приводит к совпадению Contains и недопустимой строке даты. Какие входные данные вы использовали для тестирования функтоида?   -  person Panagiotis Kanavos    schedule 25.01.2018
comment
В порядке! Я буду исследовать это дальше. Большое спасибо за ответ. Вот ввод: 09Utløpsdato/siste forfallsdato: 20180125. Затем появляется строка, содержащая :, но не удовлетворяющая условию IfCondition.   -  person SJBilly    schedule 25.01.2018
comment
Вход был проблемой, большое спасибо! Я немного ослеп на своем собственном решении, глядя на него.   -  person SJBilly    schedule 25.01.2018


Ответы (1)


Как предположил Панайотис, строка ввода в файле сделала эту ошибку и ввела : после строки, которая не была допустимой датой и временем.

person SJBilly    schedule 25.01.2018