writeQuery. Синтаксический анализ является действием чтения его от строки и создания объекта (скажем, 'фактический') представление. Противоположное записало бы объект в строку.
Вы должны включить оператор using для пространства имен, в котором определен ваш класс расширений, иначе методы расширения не будут в области видимости.
Методы расширения отлично работают с производными типами (например, расширение методы, определенные в IEnumerable
в System.Linq).
Метод расширения будет фактически применяться ко всем наследникам / разработчикам расширяемого типа (в данном случае Control). Вы можете попробовать проверить свои операторы using, чтобы убедиться, что пространство имен, в котором находится метод расширения, ссылается там, где вы пытаетесь его вызвать.
Я думаю, вам нужно сделать расширение универсальным:
public static void ExampleMethod<T>(this T ctrl)
where T : Control
{ /* ... */ }
Нет, вам не обязательно .. оно также должно работать с неуниверсальной версией, которую вы опубликовали, не забудьте добавить пространство имен для ваших расширений.
Вы также можете убедиться, что ваши расширения не определены в пространстве имен, тогда любой проект, который ссылается на них, будет автоматически импортировать их.