В С# есть метод, использующий отражение, чтобы определить, был ли метод добавлен к классу в качестве метода расширения?
Для метода расширения, такого как приведенный ниже, можно определить, что Reverse() был добавлен в класс строк?
public static class StringExtensions
{
public static string Reverse(this string value)
{
char[] cArray = value.ToCharArray();
Array.Reverse(cArray);
return new string(cArray);
}
}
Мы ищем механизм для определения в модульном тестировании того, что разработчик расширил метод расширения. Одна из причин, по которой это делается, состоит в том, что возможно, что подобный метод будет добавлен в фактический класс разработчиком, и если бы это было так, то компилятор подберет этот метод.