Не удается получить доступ к моему методу расширения
Ищете способ проверить, содержит ли строка в другом, игнорируя верхний/нижний регистр, я нашел it:
Прекрасно работает. Затем я попытался поместить его в пространство имен StringExtensions
.
namespace StringExtensions
{
public static class StringExtensionsClass
{
//...
public static bool Contains(this string target, string toCheck, StringComparison comp)
{
return target.IndexOf(toCheck, comp) >= 0;
}
}
}
а затем:
using StringExtensions;
...
if (".. a".Contains("A", StringComparison.OrdinalIgnoreCase))
но я получаю следующую ошибку:
Нет перегрузки для метода "Содержит" принимает аргументы "2"
Как это исправить?
Ответы
Ответ 1
Я нашел свою ошибку:
Для этого с типом dynamic
необходимо использовать cast
to string
.. ToString()
недостаточно.
if (((string)result.body).Contains(foo, StringComparison.OrdinalIgnoreCase))
Теперь работает отлично.
Еще раз спасибо stackoverflow.:)
Ответ 2
Если вы хотите использовать расширение, добавьте этот оператор using:
using StringExtensions;
Из-за того, как объявлены методы расширения, визуальная студия не найдет их сама по себе, а обычный Contains
метод принимает один аргумент, следовательно, ваше исключение.