Может ли метод проверить использование метода другим параметром?

У меня есть множество методов, которые используют объект конфигурации для заполнения заполнителей в шаблоне. Различные методы используют разные подмножества свойств объекта конфигурации. Я хотел бы простой способ проверить, что все свойства, которые использует данный метод, присутствуют в данном объекте конфигурации.

Прямо сейчас у меня есть такой метод:

private static void ValidateConfiguration(CustomerConfiguration config, params string[] properties)

Это имеет недостаток в обслуживании, заключающийся в том, что он использует отдельный набор строк для используемых свойств. Я хотел бы, чтобы метод проверки посмотрел на вызывающий метод и увидел, какие свойства объекта конфигурации доступны. Можно ли это сделать?

(Я мог бы также обернуть String.Replace () в методе, который проверяет наличие нулей, но это менее забавно.)

Всего 1 ответ


Безопасный тип решения вашей проблемы - реализовать несколько интерфейсов с различными значимыми подмножествами свойств. Насколько я понимаю, наличие / отсутствие свойств в вашем случае зависит от типа объекта конфигурации и является динамическим.

вы могли бы использовать такую ​​подпись

 ValidateConfiguration<T>(CustomerConfiguration config) 

где T представляет интерфейс и использует отражение, чтобы перечислить необходимые свойства. Хотя было бы практически невозможно проанализировать код метода, чтобы вывести его использование структуры данных, отразить типы (для извлечения свойств) довольно легко.


Есть идеи?

10000